移动Web开发入门(六) -- touch事件的event对象

本文已参与「新人创作礼」活动,一起开启掘金创作之路

本文主要记录了touch事件的event对象,以及简单介绍了移动端脚本框架hammer.js。

event对象

event 对象代表事件的状态,当某个事件被触发时,会自动产生一个用来描述事件所有的相关信息。

html function handStart (e){ console.log('handStart', e, e.changedTouches[0]); }

控制台打印event对象

html TouchEvent {isTrusted: true, touches: TouchList, targetTouches: TouchList, changedTouches: TouchList, altKey: false, …} altKey: false bubbles: true //***************冒泡******************* cancelBubble: false cancelable: true changedTouches: TouchList //********************触摸事件列表,是一个类数组******************* 0: Touch {identifier: 0, target: div#div, screenX: 384, screenY: 296, clientX: 130.5263214111328, …} //**********************下标从0开始*********************** length: 1 //*****************长度为1,发生变化触摸点(手指)的个数************************** __proto__: TouchList composed: true ctrlKey: false currentTarget: null defaultPrevented: false detail: 0 eventPhase: 0 isTrusted: true metaKey: false path: (5) [div#div, body, html, document, Window] returnValue: true shiftKey: false sourceCapabilities: InputDeviceCapabilities {firesTouchEvents: true} srcElement: div#div target: div#div //********************触发事件的DOM元素**************************** targetTouches: TouchList 0: Touch {identifier: 0, target: div#div, screenX: 384, screenY: 296, clientX: 130.5263214111328, …} length: 1 //******************目标(红色区域)上触摸点(手指)的个数********************** __proto__: TouchList timeStamp: 948.7999999523163 touches: TouchList 0: Touch {identifier: 0, target: div#div, screenX: 384, screenY: 296, clientX: 130.5263214111328, …} length: 1 //************************全部(整个屏幕)触摸点(手指)的个数****************************** __proto__: TouchList type: "touchstart" //*******************当前响应的事件处理函数*************************** view: Window {window: Window, self: Window, document: document, name: "", location: Location, …} which: 0 __proto__: TouchEvent

  • touches 全部(整个屏幕)触摸点(手指)的个数;
  • targetTouches 目标(红色区域)上触摸点(手指)的个数;
  • changedTouches 发生变化触摸点(手指)的个数;

控制台打印changedTouches对象

html Touch {identifier: 0, target: div#div, screenX: 278.3999938964844, screenY: 280.8000183105469, clientX: 146.7368621826172, …} clientX: 146.7368621826172 //*******可视区距离左上顶点的横向距离(不含滚动条)******** clientY: 117.68424224853516 //*******可视区距离左上顶点的纵向距离(不含滚动条)******** force: 1 identifier: 0 pageX: 146.7368621826172 //*******页面距离左上顶点的横向距离(含滚动条)******** pageY: 117.68424224853516 //*******页面距离左上顶点的纵向距离(含滚动条)******** radiusX: 12.105263710021973 radiusY: 12.105263710021973 rotationAngle: 0 screenX: 278.3999938964844 screenY: 280.8000183105469 target: div#div __proto__: Touch

  • clientX、clientY是从可视区左上角开始算;
  • pageX、pageY是从页面左上角开始算,包括通过滚轴滚动的部分;
  • screenX、screenY触摸点在屏幕中的x,y坐标;

扩展

HAMMER.JS

hammer.js是一个移动端脚本框架,它实现了移动端开发的大多数事件(如:点击、滑动、拖动、多点触控等),避免了我们自己使用touch事件进行封装。

在这里插入图片描述

本文到此结束

如果大家还有什么其他想法,欢迎在评论区交流!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱划水de鲸鱼哥~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值