javascript移动开发中touch触摸事件详解

 更新时间:2016年03月18日 16:08:09   作者:Big_Dot  
这篇文章主要为大家详细介绍了javascript移动开发中touch触摸事件,感兴趣的小伙伴们可以参考一下

事件对象是用来记录一些事件发生时的相关信息的对象。事件对象只有事件发生时才会产生,并且只能是事件处理函数内部访问,在所有事件处理函数运行结束后,事件对象就被销毁!

  • W3C DOM把事件对象作为事件处理函数的第一个参数传入进去
  • IE将事件对象作为window对象的一个属性(相当于全局变量)

originalEvent对象

在一次偶然的使用中,我发现当使用on()函数并且传入第二个选择器参数时,e.touches[0]的访问为undefined,打印e发现,它的事件对象不是原生的事件对象。经查阅发现它是jquery事件对象。

$(window).on("touchstart","body",function(e){
  console.log(e)
})

上面例子中event中有一个originalEvent属性,而这才是真正的touch事件。jQuery.Event 是一个构造函数,其创建一个可读写的jQuery事件对象,并在event 对象保留了对这个原生事件对象 event 的引用($event.originalEvent)。我们绑定的事件处理程序所处理的事件对象都是 $event。该方法也可以传递一个自定义事件的类型名,用于生成用户自定义事件对象。

touch事件

touchmove: 当手指在屏幕上滑动的时候连续地触发。
touchstart: 当手指触摸屏幕时候触发,即使已经有一个手指放在屏幕上也会触发
touchend: 当手指从屏幕上离开的时候触发。

TouchEvent对象

每一个touch事件的触发都会产生一个TouchEvent对象,以下是TouchEvent对象三个比较常用的重要属性

touches 当前位于屏幕上的所有手指的一个列表。
targetTouches 特定于事件目标的Touch对象的数组。[当前手指]
changeTouches 表示自上次触摸以来发生了什么改变的Touch对象的数组。

在这里,我用js写了一个touch事件,点击屏幕可触发,将其事件事件对象在控制台打印出,结果如下(箭头指向的是上述三个属性):

window.addEventListener("touchstart",function(event){
  console.log(event);
})

触摸事件对象属性

touches、targetTou、changeTouches都包含以下属性值

clientX:触摸目标在视口中的x坐标。
clientY:触摸目标在视口中的y坐标。
identifier:标识触摸的唯一ID。
pageX:触摸目标在页面中的x坐标。
pageY:触摸目标在页面中的y坐标。
screenX:触摸目标在屏幕中的x坐标。
screenY:触摸目标在屏幕中的y坐标。
target:触摸的DOM节点目标。
还是上面的那个例子,changeTouches对象在控制台输出如下:

以上就是本文的全部内容,希望对大家的学习有所帮助。

相关文章

  • javascript模拟实现计算器

    javascript模拟实现计算器

    这篇文章主要为大家详细介绍了javascript模拟实现计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • JS Pro-深入面向对象的程序设计之继承的详解

    JS Pro-深入面向对象的程序设计之继承的详解

    一般的面向对象程序语言,有两种继承方法——接口继承(interface inheritance)和实现继承(implementation inheritance)。接口继承只继承方法签名,而实现继承则继承实际的方法。在JavaScript中,函数没有签名,所以在JavaScript只支持实现继承,而且主要是依靠原型链(prototype chaining)来是实现的
    2013-05-05
  • 在微信小程序中使用图表的方法示例

    在微信小程序中使用图表的方法示例

    这篇文章主要介绍了在微信小程序中使用图表的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • javascript完整操作Table的增加行,删除行的列子大全

    javascript完整操作Table的增加行,删除行的列子大全

    非常漂亮的js操作table行代码函数。比较方便
    2008-10-10
  • es6 javascript对象Object.values() , Object.entries()示例详解

    es6 javascript对象Object.values() , Object.entr

    这篇文章主要介绍了es6 javascript对象Object.values() , Object.entries()的示例代码,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • 在WordPress中加入Google搜索功能的简单步骤讲解

    在WordPress中加入Google搜索功能的简单步骤讲解

    这篇文章主要介绍了在WordPress中加入Google搜索的简单步骤讲解,谷歌搜索很有用,但同时也要注意在国内使用cse的连通性,需要的朋友可以参考下
    2016-01-01
  • 重学JS 系列:聊聊继承(推荐)

    重学JS 系列:聊聊继承(推荐)

    这篇文章主要介绍了JS继承,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • js学习总结之DOM2兼容处理this问题的解决方法

    js学习总结之DOM2兼容处理this问题的解决方法

    这篇文章主要为大家详细介绍了js学习总结之DOM2兼容处理this问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • JavaScript模仿Pinterest实现图片预加载功能

    JavaScript模仿Pinterest实现图片预加载功能

    图片预加载是web开发中一种应用相当广泛的技术,比如我们在做图片翻转显示等特效的时候,为了让图片在转换的时候不出现等待,我们最好是先让图片下载到本地,然后在继续执行后续的操作。今天本文主要介绍的是利用JS模仿Pinterest图片社交网站的图片预加载功能。
    2016-10-10
  • Echarts图例组件的属性与源代码

    Echarts图例组件的属性与源代码

    图例组件展现了不同系列的标记(symbol),颜色和名字,可以通过点击图例控制哪些系列不显示,这篇文章主要给大家介绍了关于Echarts图例组件的相关资料,需要的朋友可以参考下
    2021-06-06

最新评论