为了给触摸界面提供有力支持, 触摸事件提供了响应用户对触摸屏或者触摸板上操作的能力.

接口

TouchEvent

TouchEvent 是一类描述手指在触摸平面(触摸屏、触摸板等)的状态变化的事件。这类事件用于描述一个或多个触点,使开发者可以检测触点的移动,触点的增加和减少,等等。每 个 Touch 对象代表一个触点; 每个触点都由其位置,大小,形状,压力大小,和目标 element 描述。 TouchList 对象代表多个触点的一个列表.

触摸事件的类型

为了区别触摸相关的状态改变,存在多种类型的触摸事件。可以通过检查触摸事件的 TouchEvent.type 属性来确定当前事件属于哪种类型

touchstart:当用户在触摸平面上放置了一个触点时触发。

touchend:当一个触点被用户从触摸平面上移除(当用户将一个手指离开触摸平面)时触发。

touchmove:当用户在触摸平面上移动触点时触发。

touchcancel:当触点由于某些原因被中断时触发。

判断滑动方向

基本原理就是记录开始滑动(touchStart)和结束滑动(touchEnd)的坐标位置,然后进行相对位置的计算。

touchStart:function(e){

startX = e.touches[0].pageX;

startY = e.touches[0].pageY;

e = e || window.event;

},

touchEnd:function(e){

const that = this;

endX = e.changedTouches[0].pageX;

endY = e.changedTouches[0].pageY;

that.upOrDown(startX,startY,endX,endY);

},

upOrDown:function (startX, startY, endX, endY) {

const that = this;

let direction = that.GetSlideDirection(startX, startY, endX, endY);

switch(direction) {

case 0:

console.log("没滑动");

break;

case 1:

console.log("向上");

break;

case 2:

console.log("向下");

break;

case 3:

console.log("向左");

break;

case 4:

console.log("向右");

break;

default:

break;

}

},

//根据起点和终点返回方向 1:向上,2:向下,3:向左,4:向右,0:未滑动

GetSlideDirection:function (startX, startY, endX, endY) {

const that = this;

let dy = startY - endY;

let dx = endX - startX;

let result = 0;

//如果滑动距离太短

if(Math.abs(dx) < 2 && Math.abs(dy) < 2) {

return result;

}

let angle = that.GetSlideAngle(dx, dy);

if(angle >= -45 && angle < 45) {

result = 4;

}else if (angle >= 45 && angle < 135) {

result = 1;

}else if (angle >= -135 && angle < -45) {

result = 2;

}

else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {

result = 3;

}

return result;

},

//返回角度

GetSlideAngle:function (dx, dy) {

return Math.atan2(dy, dx) * 180 / Math.PI;

}

原生JS方法

除了H5新增的方法外,还可以用原生JS判断view的滑动方向,代码如下(可直接运行):

要注意的是chrome对document.body.scrollTop一直是0,需要改成document.documentElement.scrollTop

菜鸟教程(runoob.com)

div {

border: 1px solid black;

width: 200px;

height: 100px;

overflow: scroll;

}

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

HEllo word

function scroll( fn ) {

var beforeScrollTop = document.documentElement.scrollTop,

fn = fn || function() {};

console.log('beforeScrollTop',beforeScrollTop);

window.addEventListener("scroll", function() {

var afterScrollTop = document.documentElement.scrollTop,

delta = afterScrollTop - beforeScrollTop;

console.log('beforeScrollTop',beforeScrollTop);

console.log('afterScrollTop',afterScrollTop);

if( delta === 0 ) return false;

fn( delta > 0 ? "down" : "up" );

beforeScrollTop = afterScrollTop;

}, false);

}

scroll(function(direction) { console.log(direction) });

android 判断滑动方向,H5触摸事件判断滑动方向相关推荐

  1. html5触摸事件判断滑动方向,H5触摸事件中如何判断用户滑动方向

    这次给大家带来H5触摸事件中如何判断用户滑动方向,H5触摸事件中判断用户滑动方向的注意事项有哪些,下面就是实战案例,一起来看一下. 接口 TouchEvent TouchEvent 是一类描述手指在触 ...

  2. php 判断html5,html5触摸事件判断滑动方向的实现

    这篇文章主要介绍了html5触摸事件判断滑动方向的实现的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考. 为了给触摸界面提供有力支持, 触摸事件提供了响应用户对触摸屏或者触摸板上操作的能 ...

  3. Android面试必问之触摸事件传递机制

    Android面试必问之触摸事件传递机制 一.Activity的构成 二.触摸事件的类型 三.事件传递的三个阶段 Activity对点击事件的分发过程 五.View的事件分发机制 六.点击事件分发的传 ...

  4. h5滚动时侧滑出现_HTML5移动端触摸事件以及滑动翻页效果

    HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享.今天为大家介绍的事件主 ...

  5. android(八)、触摸事件分发

    本文章基于android 4.2.1,从view拿到事件信息开始,首先对事件做一些检测及预处理:如果事件有问题的话则抛弃信息,否则的话开始对事件进行分析. 首先判断mListenerInfo是否为空, ...

  6. Android Studio学习:安卓触摸事件

    (一)安卓触摸事件概述 1.触摸分类 (1)单点触摸 单点触控,只能识别和支持每次一个手指的触控.点击,若同时有两个以上的点被触碰,就不能做出正确反应.很多医院.图书馆等的大厅都有这种触控技术的电脑, ...

  7. h5滚动时侧滑出现_H5触摸事件中如何判断用户滑动方向

    这次给大家带来H5触摸事件中如何判断用户滑动方向,H5触摸事件中判断用户滑动方向的注意事项有哪些,下面就是实战案例,一起来看一下. 接口 TouchEvent TouchEvent 是一类描述手指在触 ...

  8. android方向触摸事件,Android触摸事件传递机制,这一篇就够了

    整个触摸事件牵涉到的是,Activity,View,ViewGroup三者的传递机制. 这个触摸事件就是从外层往内层一层层的传递. 整个传递机制,分为3个步骤:分发,拦截,和消费. 1. 触摸事件的类 ...

  9. iOS实现ScrollView中子控件(Button,自定义View)的触摸事件响应

    最近要做个信息登记界面,在scrollView中添加了多个button和一个自定义的view(画板)来实现签名效果,画板中实现了touchBegin,touchMove等触摸事件方法.为了使butto ...

最新文章

  1. 【C#小知识】C#中一些易混淆概念总结(三)---------结构,GC,静态成员,静态类...
  2. 无法访问linux mysql_远程无法访问linux Mysql解决方案(转)
  3. 避免CONVT_NO_NUMBER的Runtime Errors
  4. 机器学习模型效果评估
  5. 前端学习(3234):react生命周期1
  6. 面试精讲之面试考点及大厂真题 - 分布式专栏 09 缓存必问:Reids持久化,高可用集群
  7. C#中增量类功能的方式之 继承与扩展
  8. L2-029 特立独行的幸福 (25 分)-PAT 团体程序设计天梯赛 GPLT
  9. lucas+卡特兰数
  10. linux服务器硬盘检测,Linux服务器硬盘坏道检测
  11. 使用PS排版制作一寸照片
  12. 摆脱“概念化”,自动售货机玩儿“物联网”是否靠谱?
  13. 微信小程序实验二 ——— 弹球游戏
  14. 即食水产消费品公司“不等食品”获千万元级A轮融资,险峰长青领投...
  15. 惠普星 TP01-055ccn电脑重装系统步骤
  16. unicode字符的转换
  17. 上海亚商投顾:沪指逼近2900点 两市超4500股飘绿
  18. 微信公众号运营错误的四个方式
  19. 采访ClickHouse 布道者郭炜
  20. leetcode面试题 804. 唯一摩尔斯密码词

热门文章

  1. java基础----集合之Map集合基本方法的使用以及遍历
  2. 高并发负载均衡(二):LVS 的 DR,TUN,NAT 网络模型推导
  3. MySQL索引机制:索引分类、索引的实现原理、索引的优化 - 公开课笔记
  4. netty系列之:channelPipeline详解
  5. Go 语言学习笔记(一):基础知识
  6. C++学习笔记:(二)函数重载 常量与引用
  7. leetcode--338. 比特位计数
  8. 暴力优化解法+哈希解法——2016年第七届蓝桥杯省赛b组第八题 四平方和
  9. 动态添加组件_使用vue.js的动态组件模板
  10. 计算机linux入门教程,Turbolinux入门教程1