文档章节

hammer.js学习

niuhongxia
 niuhongxia
发布于 2016/12/08 13:56
字数 1030
阅读 34
收藏 0
点赞 0
评论 0

官网地址:http://eightmedia.github.com/hammer.js/  
源码地址:https://github.com/EightMedia/hammer.js

hammer.js主要针对触屏的6大事件进行监听。

1、  Pan事件:在指定的dom区域内,一个手指放下并移动事件,即触屏中的拖动事件。这个事件在屏触开发中比较常用,如:左拖动、右拖动等,如手要上使用QQ时向右滑动出现功能菜单的效果。该事件还可以分别对以下事件进行监听并处理:

Panstart:拖动开始、Panmove:拖动过程、Panend:拖动结束、Pancancel:拖动取消、Panleft:向左拖动、Panright:向右拖动、Panup:向上拖动、Pandown:向下拖动

2、  Pinch事件:在指定的dom区域内,两个手指(默认为两个手指,多指触控需要单独设置)或多个手指相对(越来越近)移动或相向(越来越远)移动时事件。该事件事以分别对以下事件进行监听并处理:

Pinchstart:多点触控开始、Pinchmove:多点触控过程、Pinchend:多点触控结束、Pinchcancel:多点触控取消、Pinchin:多点触控时两手指距离越来越近、Pinchout:多点触控时两手指距离越来越远

3、  Press事件:在指定的dom区域内触屏版本的点击事件,这个事件相当于PC端的Click事件,该不能包含任何的移动,最小按压时间为500毫秒,常用于我们在手机上用的“复制、粘贴”等功能。该事件分别对以下事件进行监听并处理:

Pressup:点击事件离开时触发

4、  Rotate事件:在指定的dom区域内,当两个手指或更多手指成圆型旋转时触发(就像两个手指拧螺丝一样)。该事件分别对以下事件进行监听并处理:

Rotatestart:旋转开始、Rotatemove:旋转过程、Rotateend:旋转结束、Rotatecancel:旋转取消

5、  Swipe事件:在指定的dom区域内,一个手指快速的在触屏上滑动。即我们平时用到最多的滑动事件。

Swipeleft:向左滑动、Swiperight:向右滑动、Swipeup:向上滑动、Swipedown:向下滑动

6、Tap事件:在指定的dom区域内,一个手指轻拍或点击时触发该事件(类似PC端的click)。该事件最大点击时间为250毫秒,如果超过250毫秒则按Press事件进行处理。

 

经验分享:写到这个事件的时候有人必然要问了,在触屏中我们使用Click事件不也可以吗?这个Tap事件与Click事件有什么区别呢?博主也曾经有过这样的疑惑,起初在触屏上处理点击的时候也一直用的click事件,并且没也有出现任何问题,直到有一天为一个公司做了微信版本的“连连看”小游戏,连连看的业务简单来说就是屏幕上有很多图片,当点击两个相同图案的图片时可以在中间产生连接线,并且产生爆破效果后消失。这个游戏刚开始做的时候是在ff浏览器上做的测试,鼠标点击后效果非常流畅,但当游戏部署到服务器上并用手机端操作时,iphone和wp都非常流畅,安卓下不管怎么调都是有卡顿。起初以为是手机性能的问题,但换了高配手机后仍然会有卡顿,游戏也不是不能玩,就是反应慢。经过多次的测试后排除了手机配置的硬件原因,开始怀疑click事件。经过网上查阅后才得知,在安卓触屏上,Tap事件和click事件可以同时触发,但click事件会有几百毫秒的延迟,即先触发Tap事件,过一段时间再触发click事件。后来把游戏的所有click事件修改成Tap事件问题就自然解决了。

 

© 著作权归作者所有

共有 人打赏支持
niuhongxia
粉丝 0
博文 30
码字总数 8159
作品 0
济南
jquery三种支持手机触屏的插件库

因为最近开发的项目涉及到移动端 开发,其中需要实现触屏轮播效果。然而,jquery 、bootstrap(carousel.js) 库文件并没有支持触屏的事件。如果只为了实现触屏滑动这个效果引入jquerymobil...

zwjjap ⋅ 2015/10/27 ⋅ 0

分享一个支持ipad/iphone/平板电脑触摸操作的javascript类库 - Hamme...

日期:2012-3-25 来源:GBin1.com 在线演示 在线下载 这里我们分享一个超酷的帮助你打造平板触摸类操作的javascript类库 - Hammer.js,使用这个类库,可以帮助你实现类似ipad等平板电脑操作风...

gbin1 ⋅ 2012/03/27 ⋅ 0

10 个最佳的支持触摸操作的 JavaScript 框架

由于各种原因移动开发是一项艰难的工作,比如它是非常耗时的、充满压力的任务。最重要的是,作为一个开发人员,你必须保持更新所有最新的技术和技巧——你必须知道所有最新的趋势,问题和解决方案...

oschina ⋅ 2013/03/09 ⋅ 6

多点触摸手势库--Hammer.js

Hammer.js是一个轻量级的JavaScript库(仅有2kb),能让你的网站轻松实现触控事件。它依赖于jQuery,用来控制触摸设备上的多点触控特性。并支持以下特性: Tap Double Tap Hold Drag Transfo...

匿名 ⋅ 2012/03/24 ⋅ 0

响应式 CSS 动画框架--Sequence.js

Sequence.js 是响应式 CSS 动画框架,可以创建幻灯片,演示,横幅和其他基于步骤的应用。 主要特性: CSS 框架 支持桌面,平板和移动端 响应式 & 切换平滑 使用 Hammer.js 支持触屏 跨浏览器...

叶秀兰 ⋅ 2015/08/27 ⋅ 0

移动开发框架

最近要开始做个项目,里面有大量图表,一直纠结如何处理,当然aChartEngine 这个类库满足不了需求,如何做呢? 自己参考了一些app,类似雪球,他用的是混合开发,html5与native一起,前端主要...

小克898 ⋅ 2014/09/16 ⋅ 0

一个牛逼网站的精彩背后

挖到一个值得学习的网站:http://moonbear.animalsasia.org/ie/ 对于传统的网站来讲,这是一个神奇的网站!呵呵,,你在浏览整个体验的过程当中,就像翻阅一本杂志一样轻松,我把这个网站开发...

洋葱头大 ⋅ 2013/12/11 ⋅ 19

多功能网格布局--Muuri

Muuri 能够创建响应式,可排序,可过滤和可拖动的网格布局。 Muuri 布局系统允许以多种方式将网格项目定位在容器内。默认的"首个适配"布局算法生成与 Packery 和 Masonry 类似的布局。该实现...

匿名 ⋅ 2017/01/10 ⋅ 1

bootstrap大图轮播手机端不能手指滑动解决办法

网上看了很多解决办法,几乎本质都是一样的,都是引入一个滑动的js插件,加入一段js代码,即可生效,但是我试了hammer.js 和 touchSwipe.js 都不生效,也找不到原因是什么,目前在网上就找到...

蓓蕾心晴 ⋅ 2017/03/10 ⋅ 0

移动端浏览器手势可以禁止吗

怎么才能阻止移动端浏览器的滑动等手势行为,比如左右滑动切换页面,双指放大页面html5! hammer.js里面的stopDefaultBrowserBehavior怎么调用啊,有用吗?...

prince_happy ⋅ 2014/08/29 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周六乱弹 —— 假如你被熊困到树上

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《如果写不出好的和弦就该在洒满阳光的钢琴前一起吃布丁》 《如果写不出好的和弦就该在洒满阳光的钢琴前一起吃布丁》- 谢...

小小编辑 ⋅ 37分钟前 ⋅ 4

vbs 取文件大小 字节

dim namedim fs, s'name = Inputbox("姓名")'msgbox(name)set fs = wscript.createobject("scripting.filesystemobject") 'fs为FSO实例if (fs.folderexists("c:\temp"))......

vga ⋅ 今天 ⋅ 1

高并发之Nginx的限流

首先Nginx的版本号有要求,最低为1.11.5 如果低于这个版本,在Nginx的配置中 upstream web_app { server 到达Ip1:端口 max_conns=10; server 到达Ip2:端口 max_conns=10; } server { listen ...

算法之名 ⋅ 今天 ⋅ 0

Spring | IOC AOP 注解 简单使用

写在前面的话 很久没更新笔记了,有人会抱怨:小冯啊,你是不是在偷懒啊,没有学习了。老哥,真的冤枉:我觉得我自己很菜,还在努力学习呢,正在学习Vue.js做管理系统呢。即便这样,我还是不...

Wenyi_Feng ⋅ 今天 ⋅ 0

博客迁移到 https://www.jianshu.com/u/aa501451a235

博客迁移到 https://www.jianshu.com/u/aa501451a235 本博客不再更新

为为02 ⋅ 今天 ⋅ 0

win10怎么彻底关闭自动更新

win10自带的更新每天都很多,每一次下载都要占用大量网络,而且安装要等得时间也蛮久的。 工具/原料 Win10 方法/步骤 单击左下角开始菜单点击设置图标进入设置界面 在设置窗口中输入“服务”...

阿K1225 ⋅ 今天 ⋅ 0

Elasticsearch 6.3.0 SQL功能使用案例分享

The best elasticsearch highlevel java rest api-----bboss Elasticsearch 6.3.0 官方新推出的SQL检索插件非常不错,本文一个实际案例来介绍其使用方法。 1.代码中的sql检索 @Testpu...

bboss ⋅ 今天 ⋅ 0

informix数据库在linux中的安装以及用java/c/c++访问

一、安装前准备 安装JDK(略) 到IBM官网上下载informix软件:iif.12.10.FC9DE.linux-x86_64.tar放在某个大家都可以访问的目录比如:/mypkg,并解压到该目录下。 我也放到了百度云和天翼云上...

wangxuwei ⋅ 今天 ⋅ 0

PHP语言系统ZBLOG或许无法重现月光博客的闪耀历史[图]

最近在写博客,希望通过自己努力打造一个优秀的教育类主题博客,名动江湖,但是问题来了,现在写博客还有前途吗?面对强大的自媒体站点围剿,还有信心和可能型吗? 至于程序部分,我选择了P...

原创小博客 ⋅ 今天 ⋅ 0

IntelliJ IDEA 2018.1新特性

工欲善其事必先利其器,如果有一款IDE可以让你更高效地专注于开发以及源码阅读,为什么不试一试? 本文转载自:netty技术内幕 3月27日,jetbrains正式发布期待已久的IntelliJ IDEA 2018.1,再...

Romane ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部