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


Posted in Javascript onMarch 18, 2016

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

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

originalEvent对象

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

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

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

上面例子中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);
})

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

触摸事件对象属性

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

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

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

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

Javascript 相关文章推荐
Autocomplete Textbox Example javascript实现自动完成成功
Aug 17 Javascript
Grid得到选择行数据的方法总结
Jan 17 Javascript
js 调用父窗口的具体实现代码
Jul 15 Javascript
防止jQuery ajax Load使用缓存的方法小结
Feb 22 Javascript
使用JS获取当前地理位置方法汇总
Dec 18 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
Mar 13 Javascript
网页从弹窗页面单选框传值至父页面代码分享
Sep 29 Javascript
vue如何获取点击事件源的方法
Aug 10 Javascript
详谈Node.js之操作文件系统
Aug 29 Javascript
抖音上用记事本编写爱心小程序教程
Apr 17 Javascript
手把手教你 CKEDITOR 4 实现Dialog 内嵌 IFrame操作详解
Jun 18 Javascript
一看就会的vuex实现登录验证(附案例)
Jan 09 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
Mar 18 #Javascript
基于jQuery实现收缩展开功能
Mar 18 #Javascript
基于javascript显示当前时间以及倒计时功能
Mar 18 #Javascript
jQuery.deferred对象使用详解
Mar 18 #Javascript
JS中的二叉树遍历详解
Mar 18 #Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
Mar 18 #Javascript
Javascript的表单验证-揭开正则表达式的面纱
Mar 18 #Javascript
You might like
PHP中文URL编解码(urlencode()rawurlencode()
2010/07/03 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
PHP模板引擎smarty详细介绍
2015/05/26 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
javascript 网页跳转的方法
2008/12/24 Javascript
下载网站打开页面后间隔多少时间才显示下载链接地址的代码
2010/04/25 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
javascript实现一个数值加法函数
2015/06/26 Javascript
JS Ajax请求如何防止重复提交
2016/06/13 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
2016/06/25 Javascript
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
bootstrap Table实现合并相同行
2019/07/19 Javascript
js实现的在本地预览图片功能示例
2019/11/09 Javascript
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
Python实现类似jQuery使用中的链式调用的示例
2016/06/16 Python
Python实现屏幕截图的代码及函数详解
2016/10/01 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
django xadmin中form_layout添加字段显示方式
2020/03/30 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
python调用百度API实现人脸识别
2020/11/17 Python
通过HTML5 Canvas API绘制弧线和圆形的教程
2016/03/14 HTML / CSS
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
英国花园家具中心:Garden Furniture Centre
2017/08/24 全球购物
中国包裹转运寄送国际服务:Famiboat
2019/07/24 全球购物
行政主管岗位职责
2013/11/18 职场文书
函授毕业生的自我鉴定
2013/11/26 职场文书
本科毕业生求职自荐信
2014/02/03 职场文书
建筑施工安全生产责任书
2014/07/22 职场文书
2014院党委领导班子及其成员群众路线对照检查材料思想汇报
2014/10/04 职场文书
圣诞节开幕词
2015/01/29 职场文书
车间班组长竞聘书
2015/09/15 职场文书