原生js 有没有 手机移动端 滑动 的事件

JavaScript019

原生js 有没有 手机移动端 滑动 的事件,第1张

手机移动端滑动事件当然是有的

touchmove即为滑动事件

还有其他触摸事件,都给列一下:

touchstart事件:当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发。

touchmove事件:当手指在屏幕上滑动的时候连续地触发。在这个事件发生期间,调用preventDefault()事件可以阻止滚动。

touchend事件:当手指从屏幕上离开的时候触发。

touchcancel事件:当系统停止跟踪触摸的时候触发。关于这个事件的确切出发时间,文档中并没有具体说明,咱们只能去猜测了。

 

touchstart :手指触摸到一个 DOM 元素时触发。

touchend :手指从一个 DOM 元素上移开时触发。

touchmove :手指在一个 DOM 元素上滑动时触发。

思路是,在触发 touchstart 时设置一个定时器 setInterval(longPress(),500) ,指定时间后执行长按的操作(如500ms),在执行完长按的操作和触发 touchend 之后清除定时器。

这样一来,如果没有超过500ms,手指离开屏幕,触发 touchend ,则 longPress 不会执行。如果时间时间超过500ms,则 longPress 执行一次。

由于ontouchend优先触发于click

所以思路就是给全局document同时绑定touch和click

~function()//创建作用域

{

var Quest = [],Judge = function(Event)

{

Type = Event.type//得到事件类型并记录

for (var F = 0F < Quest.length++F) Quest[F][0].addEventListener

(Type,Quest[F][1])//对尚未判断类型时保存的信息进行处理,重新绑定

document.removeEventListener('touchend',Judge)

document.removeEventListener('click',Judge)//解除判断函数的绑定

console.log(Type)

},Type

document.addEventListener('touchend',Judge)

document.addEventListener('click',Judge)//绑定判断函数

window.SmartBind = function(Obj,Handle)//向全局添加自动绑定函数

{

if (void 0 === Type) return Quest.push([Obj,Handle])//若尚未判断浏览器类型则先保存需要绑定的函数

Obj.addEventListener(Type,Handle)//绑定事件

}

}()