Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Touch 移动设备上的 手势识别 与 Js事件库

Touch 移动设备上的 手势识别 与 Js事件库

作者头像
青梅煮码
发布于 2023-01-14 08:29:14
发布于 2023-01-14 08:29:14
4.8K00
代码可运行
举报
文章被收录于专栏:青梅煮码青梅煮码
运行总次数:0
代码可运行

Touch.js 是移动设备上的手势识别与事件库, 由百度云Clouda团队维护,也是在百度内部广泛使用的开发工具。 Touch.js手势库专为移动设备设计。 Touch.js对于网页设计师来说,是一款不错的辅助工具,可以减少很多写框架控制器的时间。 网页合理使用Touch.js不但能增加网页的美观感,而且在节约时间,减少人力投入也有极大的帮助。

Touch.js官网: https://www.awesomes.cn/repo/Clouda-team/touchjs Github 地址:  https://github.com/Clouda-team/touchjs

1、事件绑定

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
touch.on(element, types, callback)

参数

事件绑定方法,根据参数区分事件绑定和事件代理。

参数名

概述

element

类型element或string, 元素对象、选择器

types

类型string ,事件的类型(多为手势事件),可接受多个事件以空格分开;支持原生事件的透传

callback

类型function, 事件处理函数, 移除函数与绑定函数必须为同一引用

2、部分手势事件

3、部分事件处理函数

touchstart //手指刚接触屏幕时触发 touchmove //手指在屏幕上移动时触发 touchend//手指从屏幕上移开时触发

4、事件配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
touch.config(config)

功能描述: 对手势事件库进行全局配置。

参数描述:

1. config为一个对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    tap: true,                  //tap类事件开关, 默认为true
    doubleTap: true,            //doubleTap事件开关, 默认为true
    hold: true,                 //hold事件开关, 默认为true
    holdTime: 650,              //hold时间长度
    swipe: true,                //swipe事件开关
    swipeTime: 300,             //触发swipe事件的最大时长
    swipeMinDistance: 18,       //swipe移动最小距离
    swipeFactor: 5,             //加速因子, 值越大变化速率越快
    drag: true,                 //drag事件开关
    pinch: true,                //pinch类事件开关
}

百度touch.js可以说是Web移动端touch点击事件不错的解决方案,搭配zepto.js或者jQuery使用起来解决了移动端click点击事件300ms的延迟问题。

百度官方touch.js的说明文档,详见:http://cloudajs.org/docs/step4_API_Documentation#h2_7

Touch.js上手还是很容易的,语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
touch.on(‘#btn-ok’,’tap’,function(ev){
 
//这里是你想要执行的操作,随便写
})

上面是一个简单的tap操作,touch.js还支持滑动、缩放等等手势操作,详细的手势事件如下:

2. touch.js支持的手势事件类型:

分类

参数

描述

缩放

pinchstart

缩放手势起点

~

pinchend

缩放手势终点

~

pinch

缩放手势

~

pinchin

收缩

~

pinchout

放大

旋转

rotateleft

向左旋转

~

rotateright

向右旋转

~

rotate 旋

滑动

swipestart

滑动手势起点

~

swiping

滑动中

~

swipeend

滑动手势终点

~

swipeleft

向左滑动

~

swiperight

向右滑动

~

swipeup

向上滑动

~

swipedown

向下滑动

~

swipe

滑动

拖动开始

dragstart

拖动屏幕

拖动

drag

拖动手势

拖动结束

dragend

拖动屏幕

拖动

drag

拖动手势

长按

hold

长按屏幕

敲击

tap

单击屏幕

doubletap

双击屏幕

事件代理

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
touch.on( delegateElement, types, selector, callback );

功能描述

事件代理方法。

参数描述

参数

类型

描述

delegateElement

element或string

事件代理元素或选择器

types

string

手势事件的类型, 可接受多个事件以空格分开;支持原生事件的透传。目前支持的具体事件类型,详见《手势事件类型》。

selector

string

代理子元素选择器,

callback

function

事件处理函数,如需了解手势库支持的新属性,详见《事件对象》

事件配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
touch.config(config)

功能描述

对手势事件库进行全局配置。

参数描述

config为一个对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    tap: true,                  //tap类事件开关, 默认为true
    doubleTap: true,            //doubleTap事件开关, 默认为true
    hold: true,                 //hold事件开关, 默认为true
    holdTime: 650,              //hold时间长度
    swipe: true,                //swipe事件开关
    swipeTime: 300,             //触发swipe事件的最大时长
    swipeMinDistance: 18,       //swipe移动最小距离
    swipeFactor: 5,             //加速因子, 值越大变化速率越快
    drag: true,                 //drag事件开关
    pinch: true,                //pinch类事件开关
}

事件对象

事件处理函数的第一个参数为事件对象,除了原生属性之外,百度手势库还提供了部分新属性。

以下为手势新增的属性:

属性

描述

originEvent

触发某事件的原生对象

type

事件的名称

rotation

旋转角度

scale

缩放比例

direction

操作的方向属性

fingersCount

操作的手势数量

position

相关位置信息, 不同的操作产生不同的位置信息

distance

swipe类两点之间的位移

distanceX, x

手势事件x方向的位移值, 向左移动时为负数

distanceY, y

手势事件y方向的位移值, 向上移动时为负数

angle

rotate事件触发时旋转的角度

duration

touchstart 与 touchend之间的时间戳

factor

swipe事件加速度因子

startRotate

启动单指旋转方法,在某个元素的touchstart触发时调用

事件绑定

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
touch.on( element, types, callback );

功能描述

事件绑定方法,根据参数区分事件绑定和事件代理。

参数描述

参数

类型

描述

element

element或string

事件绑定元素或选择器

types

string

事件的类型, 可接受多个事件以空格分开,支持原生事件的透传。具体参数说明,同“事件代理”方法中的“types”参数说明。

callback

function

事件处理函数,具体参数说明,同“事件代理”方法中的“callback”参数说明。

解除事件代理

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
touch.off( delegateElement, types, selector, callback )

功能描述

解除某元素上的事件代理。

参数描述

参数

类型

描述

delegateElement

element或string

元素对象或选择器

types

string

事件的类型,具体参数说明,同“事件代理”方法中的“types”参数说明。

selector

string

代理子元素选择器

callback

function

事件处理函数, 移除函数与绑定函数必须为同一引用。具体参数说明,同“事件代理”方法中的“callback”参数说明。

解除事件绑定

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
touch.off( element, types, callback )

功能描述

解除某元素上的事件绑定,根据参数区分事件绑定和事件代理。

参数描述

参数

类型

描述

element

element或string

元素对象、选择器

types

string

事件的类型,具体参数说明,同“事件代理”方法中的“types”参数说明。

callback

function

事件处理函数, 移除函数与绑定函数必须为同一引用;具体参数说明,同“事件代理”方法中的“callback”参数说明。

触发事件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
touch.trigger(element, type);

功能描述

触发某个元素上的某事件。

参数描述

参数

类型

描述

element

element或string

元素对象或选择器

type

string

事件的类型,具体参数说明,同“事件代理”方法中的“types”参数说明。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
touch.js的使用总结
types  string 事件的类型(多为手势事件),可接受多个事件以空格分开;支持原生事件的透传
青梅煮码
2023/03/02
2K0
hammer.js手势库使用
hammer.js是一款移动端手势库组件,支持pan(拖动)、swipe(滑动)、tap(轻触)、press(按压,即长按)、doubletap(双击)等很多手势操作,提供比较完善的事件监听机制,但是
用户1141560
2017/12/26
2.8K0
揭秘vue/react组件库中🤚5个"作者不造的轮子"
来源: 铁皮饭盒https://juejin.im/post/5d89cd156fb9a06acb3ee19e
Sneaker-前端公虾米
2021/12/23
1.5K0
揭秘vue/react组件库中🤚5个"作者不造的轮子"
移动端前端常见的触摸相关事件touch、tap、swipe等整理
前端的很多事件在PC端和浏览器端可公用,但有些事件却只在移动端产生,如触摸相关的事件
书童小二
2018/09/03
2.9K0
移动端前端常见的触摸相关事件touch、tap、swipe等整理
Appium移动端自动化测试--元素操作与触摸动作
1.click()点击操作 也可以用tab实现点击操作 driver.find_element_by_id("com.wuba.zhuanzhuan:id/ae8").click()
软测小生
2019/12/26
1.5K0
SNS项目笔记<六>--手势Gestures
这里直接贴上angular源码地址:angular源码之hammer_gestures <这里方便它更新后的修改> 这里又贴上该地址的源码以便说明:
stormKid
2018/09/12
1.7K0
SNS项目笔记<六>--手势Gestures
10-移动端开发教程-移动端事件
在前端的移动Web开发中,有一部分事件只在移动端产生,如触摸相关的事件。接下来给大家简单总结一下移动端的事件。
老马
2018/02/18
7.6K0
10-移动端开发教程-移动端事件
开源库架构实战——从0到1搭建属于你自己的开源库
最近在 H5 开发与 APP 客户端工程师的联调过程中, 经常需要实现一些常用的移动端事件封装成接口提供给客户端,例如用户的单击 tap 事件、双击事件、长按事件以及拖动事件。但由于浏览器默认只提供了 touchstart、touchmove、touchend 三个原生事件,在实际的开发过程中,我们常用的解决方案便是通过监听touchstart 和 touchend 事件配合定时器来实现我们的自定义移动端事件,为了实现常用自定义事件的复用,我们对其进行了封装,并提供方便用户使用的工具函数,这也是我们实现 mt-events 的初衷。
IMWeb前端团队
2019/12/03
1.5K0
开源库架构实战——从0到1搭建属于你自己的开源库
谁说你只是"会用"jQuery?
前言 套用上篇文章向zepto.js学习如何手动触发DOM事件 的开头??? 前端在最近几年实在火爆异常,vue、react、angular各路框架层出不穷,咱们要是不知道个双向数据绑定,不晓得啥是
IMWeb前端团队
2017/12/29
1.4K0
谁说你只是"会用"jQuery?
只会用Selenium爬网页?Appium爬App了解一下
Appium是一个跨平台移动端自动化测试工具,可以非常便捷地为iOS和Android平台创建自动化测试用例。它可以模拟App内部的各种操作,如点击、滑动、文本输入等,只要我们手工操作的动作Appium都可以完成。在前面我们了解过Selenium,它是一个网页端的自动化测试工具。Appium实际上继承了Selenium,Appium也是利用WebDriver来实现App的自动化测试。对iOS设备来说,Appium使用UIAutomation来实现驱动。对于Android来说,它使用UiAutomator和S
崔庆才
2018/06/25
9.9K1
读Zepto源码之Touch模块
对角另一面
2017/12/27
1.1K0
iOS中手势的应用1. 四类事件的主要方法2. 响应者链3. 手势识别功能(Gesture Recognizer)4. 手势的使用
iOS设备现如今大受欢迎的最重要原因之一就在于其开创了触控操作的潮流。发展到现在,无论是Android还是iPhone,现在APP与用户进行交互,基本上都是依赖于各种各样的触控事件。例如用户对屏幕进行了侧滑,APP就需要对这个手势进行相应的处理,给用户一个反馈。这些相应的事件就都是在UIResponder中定义的。 广告插播的措不及防:如果您要是觉得这篇文章让您有点收获,随手点个赞会让俺兴奋好久吶。 UIResponder大体有四类事件:触摸、加速计、远程控制、按压(iOS9.0以后出来的,3DTou
stanbai
2018/06/28
2.6K0
iOS 小技能:响应者链的事件传递过程、手势识别器的使用步骤、抽屉效果的实现
为了完成手势识别,必须借助于手势识别器UIGestureRecognizer。利用UIGestureRecognizer,能轻松识别用户在某个view上面做的一些常见手势。
公众号iOS逆向
2022/08/22
1.1K0
iOS 小技能:响应者链的事件传递过程、手势识别器的使用步骤、抽屉效果的实现
札记:android手势识别,MotionEvent
用户1172465
2018/01/08
5.7K0
zepto 基础知识(6)
101.$.ajax   $.ajax(options) 类型:XMLttpRequest   执行Ajax请求。他可能是本地资源,或者通过支持HTTP access control的浏览器 或者通过 JSONP来实现跨域。   选项:     type(默认: “GET”):请求方法 (“GET”, “POST”, or other)     url (默认: 当前地址):发送请求的地址     data (默认:none):发送到服务器的数据;如果是GET请求,它会自动被作
用户1197315
2018/01/19
1.8K0
iOS_单元测试二之UITests
那些setUp和tearDown方法这里就不一一赘述了,上一篇文章有介绍过。 我们来看看不一样的:
mikimo
2022/07/20
9560
vue3打造接近原生体验的抽屉指令
额,写写写,即使你们不看,那我也得写给自己看,将自己的心得体会、问题踩坑归纳总结,来塑造自己的职业经历
用户7413032
2023/07/09
5990
vue3打造接近原生体验的抽屉指令
新零售实战 | 新零售在线商城多端触达体系演进:从基础触达到智能生态的实践之旅
为了满足消费者随时随地购物的需求,在线商城的多端触达体系变得至关重要。多端触达体系涵盖了移动端的 APP、H5 页面、PWA 应用,PC 端的官网商城和后台管理系统,智能设备如 POS 机、自助收银机、AR/VR 试衣镜,以及第三方平台的微信小程序、支付宝生活号、抖音小店等。这些不同的终端和平台构成了一个庞大的网络,让企业能够全方位地触达消费者。然而,构建和优化这样一个多端触达体系并非易事,需要经历多个阶段的迭代和升级。
叶一一
2025/04/24
3620
新零售实战 | 新零售在线商城多端触达体系演进:从基础触达到智能生态的实践之旅
2014-11-8Android学习------手势识别事件的处理GestureDetector--------动画Animation学习篇
我学习Android都是结合源代码去学习,这样比较直观,非常清楚的看清效果,觉得很好,今天的学习源码是网上找的源码 百度搜就知道很多下载的地方 网上源码的名字叫:android抽屉效果.zip 我的博客写的比较乱,如果本篇文章没有看懂,
wust小吴
2022/03/07
8710
2014-11-8Android学习------手势识别事件的处理GestureDetector--------动画Animation学习篇
【愚公系列】2023年12月 HarmonyOS教学课程 035-ArkUI事件(触屏事件)
触屏事件是指通过触摸屏幕来进行操作和交互的事件。常见的触屏事件包括点击(tap)、双击(double tap)、长按(long press)、滑动(swipe)、拖动(drag)等。触屏事件通常用于移动设备和平板电脑等具有触摸屏幕的设备上,用户可以通过触摸屏幕上的不同区域或者以不同的方式进行操作,从而实现各种功能和交互效果。触屏事件可以被应用程序或者操作系统捕捉并响应,以实现用户与设备之间的交互。
愚公搬代码
2025/06/02
1030
【愚公系列】2023年12月 HarmonyOS教学课程 035-ArkUI事件(触屏事件)
推荐阅读
相关推荐
touch.js的使用总结
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验