当前位置: 首页 > 编程笔记 >

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

夏弘文
2023-03-14
本文向大家介绍javascript移动开发中touch触摸事件详解,包括了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对象在控制台输出如下:

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

 类似资料:
  • 本文向大家介绍移动web开发之touch事件实例详解,包括了移动web开发之touch事件实例详解的使用技巧和注意事项,需要的朋友参考一下 前面的话 iOS版Safari为了向开发人员传达一些特殊信息,新增了一些专有事件。因为iOS设备既没有鼠标也没有键盘,所以在为移动Safari开发交互性网页时,常规的鼠标和键盘事件根本不够用。随着Android 中的WebKit的加入,很多这样的专有事件变成了

  • 本文向大家介绍IOS 开发之触摸事件详细介绍,包括了IOS 开发之触摸事件详细介绍的使用技巧和注意事项,需要的朋友参考一下 IOS 触摸事件  iOS中的事件可以分为3大类型: 触摸事件 加速计事件 远程控制事件 响应者对象 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”。 UIApplication、UIViewContro

  • 本文向大家介绍jQuery 移动端拖拽(模块化开发,触摸事件,webpack),包括了jQuery 移动端拖拽(模块化开发,触摸事件,webpack)的使用技巧和注意事项,需要的朋友参考一下 通过jquery可以很容易实现CP端的拖拽。但是在移动端却不好用了。于是我自己写了一个在移动端的拖拽demo,主要用到的事件是触摸事件(touchstart,touchmove和touchend)。 这个de

  • 本文向大家介绍iOS UIView的Touch事件有哪几种触摸事件?相关面试题,主要包含被问及iOS UIView的Touch事件有哪几种触摸事件?时的应答技巧和注意事项,需要的朋友参考一下 处理事件的方法 UIView是UIResponder的子类,可以覆盖下列4个方法处理不同的触摸事件  

  • 本文向大家介绍JS触摸事件、手势事件详解,包括了JS触摸事件、手势事件详解的使用技巧和注意事项,需要的朋友参考一下 触屏已经是我们身边电子设备的常态了。触摸事件当然也是随着触屏的出现,用户使用最多的事件啦! 难道使用触屏事件后,其他原来的鼠标事件就都不能用啦?当然不是,只不过不是那么好用啊。 针对鼠标事件,有哪些不适应? dbclick 触屏设备不支持双击事件。双击浏览器窗口,会放大画面。 可以通

  • 本文向大家介绍javascript移动设备Web开发中对touch事件的封装实例,包括了javascript移动设备Web开发中对touch事件的封装实例的使用技巧和注意事项,需要的朋友参考一下 在触屏设备上,一些比较基础的手势都需要通过对 touch 事件进行二次封装才能实现。 zepto 是移动端上使用率比较高的一个类库,但是其 touch 模块模拟出来的一些事件存在一些兼容性问题,如 tap