移动端 touch 事件的originalEvent(转)

本文详细介绍了如何在移动端和PC端通过原生JS和jQuery获取触摸和鼠标事件的坐标,包括mousedown、mousemove、mouseup、touchstart、touchmove和touchend等事件的处理方式,以及touches、targetTouches和changedTouches列表的区别。

对于移动端的触摸事件,我们通过touchstart、touchmove、touchend实现,PC端一般使用mousedown、mousemove、mouseup实现。

  我们获取事件坐标,原生js获取方式

mousedownevent.pageX
mousemoveevent.pageX
mouseupevent.pageX
touchstartevent.touches[0].pageX  &  event.changedTouches[0].pageX  &  event.targetTouches[0].pageX
touchmoveevent.touches[0].pageX  &  event.changedTouches[0].pageX  &  event.targetTouches[0].pageX
touchendevent.touches[0].pageX  &  event.changedTouches[0].pageX  &  event.targetTouches[0].pageX

 

  jQuery获取方式

 

mousedownevent.pageX
mousemoveevent.pageX
mouseupevent.pageX
touchstartevent.originalEvent.touches[0].pageX  &  event.originalEvent.changedTouches[0].pageX  &  event.originalEvent.targetTouches[0].pageX
touchmoveevent.originalEvent.touches[0].pageX  &  event.originalEvent.changedTouches[0].pageX  &  event.originalEvent.targetTouches[0].pageX
touchendevent.originalEvent.changedTouches[0].pageX  &  event.originalEvent.targetTouches[0].pageX

 

  其中关于touch触摸事件的触摸列表:

    touches :当前位于屏幕上的所有手指的一个列表。
    targetTouches :位于当前DOM元素上的手指的一个列表。
    changedTouches :涉及当前事件的手指的一个列表。

 

  对于jQuery中在移动端获取坐标使用的event.originalEvent,有以下:

 

  It's also important to note that the event object contains a property called originalEvent, which is the event object that the browser itself created. jQuery wraps this native event object with some useful methods and properties, but in some instances, you'll need to access the original event via event.originalEvent for instance. This is especially useful for touch events on mobile devices and tablets.

 

  event.originalEvent is usually just the native event (also described here).

  However, if the browser is compatible, and the event was a touch event then that API will be exposed through event.originalEvent.

  The short answer is that event.originalEvent is not always the same, it depends on which event type triggered the handler, and on the environment of the browser.

 

 

  关于event.originalEvent说明的地址链接:http://stackoverflow.com/questions/16674963/event-originalevent-jquery

  关于touch事件的补充内容地址链接:http://blog.youkuaiyun.com/clh604/article/details/9861411

转自:https://www.cnblogs.com/dongcanliang/p/5749270.html

关于 GASP (Gesture Animation Scripting Protocol)移动端的实现方案、开发框架以及库的信息,在现有的参考资料中并未直接提及。然而,可以基于手势识别和动画脚本协议在移动设备上的常见实践来提供相关信息。 ### 手势交互与动画 对于移动端的手势支持,通常会涉及到触摸事件处理机制。JavaScript 和其生态系统提供了多种方法来捕捉并响应这些事件。例如,通过监听 `touchstart`、`touchmove` 和 `touchend` 事件,开发者能够创建自定义的手势检测逻辑[^1]。 ```javascript document.addEventListener('touchstart', handleTouchStart, false); document.addEventListener('touchmove', handleTouchMove, false); var xDown = null; var yDown = null; function getTouches(evt) { return evt.touches || // browser API evt.originalEvent.touches; // jQuery } function handleTouchStart(evt) { const firstTouch = getTouches(evt)[0]; xDown = firstTouch.clientX; yDown = firstTouch.clientY; }; ``` ### 动画控制 当谈及到动画方面时,CSS3 的过渡效果(transitions)、变换(transforms),以及 Web Animations API 是常用的技术手段。它们允许网页设计师轻松地为页面元素添加平滑的变化过程。特别是针对性能优化过的硬件加速特性,使得复杂视觉特效也能流畅运行于手机和平板电脑上[^2]。 ### 开源项目推荐 考虑到实际应用场景中的需求多样性,这里列举几个可能有助于构建具备良好用户体验的应用程序: - **Hammer.js**: 这是一个专注于多点触控手势解析的强大 JavaScript 库。它不仅简化了基础操作如缩放、旋等的功能编写工作量,还兼容主流浏览器平台。 - **Velocity.js**: Velocity 提供了一个更快速且功能丰富的替代品用于执行 DOM 动画序列。相较于原生 jQuery 方法而言,此工具包拥有更高的效率表现,并且易于集成其他插件扩展能力。 尽管上述内容并没有特别提到 GASP 协议本身,但在讨论如何实现在移动平台上高效而直观的人机界面设计时,这些都是不可或缺的知识要点[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值