Hammer.js——移动设备触摸手势
来源:互联网 发布:天正建筑t20 mac 编辑:程序博客网 时间:2024/05/22 05:06
简介
Hammer.js是一个轻量级的JavaScript库(仅有2kb),能让你的网站轻松实现触控事件。它依赖于jQuery,用来控制触摸设备上的多点触控特性。并支持以下特性:
- Tap
- Double Tap
- Hold
- Drag
- Transform
兼容性
Hammer.js已经在IOS5系统的iPad1,IOS5系统的iPhone,Android 2.3.3的三星Galaxy S以及Goolge Chrome 17测试可用。在桌面浏览器上鼠标能够模拟单个手指的触控事件。在Android 2与3 默认的浏览器以及FireFox 10不支持多点触控事件,所以在Android,FireFox 1.1(Nokia N900)上没有transform。Windows Phone 7.5不支持触摸事件,mouse event支持也很糟糕。
使用方法
hammer.js是一款开源的移动端脚本框架,他可以完美的实现在移端开发的大多数事件,如:点击、滑动、拖动、多点触控等事件。不需要依赖任何其他的框架,并且整个框架非常小,在使用时非常简单。
1 <div id="test" class="test"></div> 2 <script type="text/javascript"> 3 //创建一个新的hammer对象并且在初始化时指定要处理的dom元素 4 var hammertime = new Hammer(document.getElementById("test")); 5 //为该dom元素指定触屏移动事件 6 hammertime.on("pan", function (ev) { 7 //控制台输出 8 console.log(ev); 9 });10 </script>
它会默认为这个对象添加一系列识别器,包括 tap<点>, doubletap<双点击>, press<按住>, 水平方位的pan<平移> 和 swipe<快速滑动>, 以及多触点的 pinch<捏放> 和 rotate<旋转>识别器。不过呢,其中的 pinch 和 rotate 默认是不可用的,因为它们可能会导致元素被卡住,如果你想启用它们,可以加上这两句:
hammertime.get('pinch').set({ enable: true });hammertime.get('rotate').set({ enable: true });
若要允许识别器识别垂直方位或全部方位的 pan 和 swipe,可以这么写:
hammertime.get('pan').set({ direction: Hammer.DIRECTION_ALL });hammertime.get('swipe').set({ direction: Hammer.DIRECTION_VERTICAL });
另建议加上如下meta标签,防止doubletap 或 pinch 缩放了viewport:
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1">
更多控制
你可以为你的实例设置属于你自己的识别器,虽然要多写一点代码,但能让你控制更多能被识别的手势:
var mc = new Hammer.Manager(myElement, myOptions);mc.add( new Hammer.Pan({ direction: Hammer.DIRECTION_ALL, threshold: 0 }) );mc.add( new Hammer.Tap({ event: 'quadrupletap', taps: 4 }) );mc.on("pan", handlePan);mc.on("quadrupletap", handleTaps);
上述的代码创建了一个实例(mc),它包含了一个 pan 和一个 quadrupletap 手势,识别器实例会在它们被添加(add)之后就不断地执行,且(一个识别器实例)只能识别一个(手势)。
官网:http://hammerjs.github.io/
GitHub:https://github.com/hammerjs/hammer.js/tree/master/
更多参数请见:http://www.cnblogs.com/vajoy/p/4011723.html
- Hammer.js——移动设备触摸手势
- Hammer.js 移动设备触摸手势js库
- 移动开发框架,第【二】弹:Hammer.js 移动设备触摸手势js库
- hammer.js – 多点触摸手势库
- hammer.js 一个多点触摸手势库
- hammer.js移动端触摸事件
- 移动端手势库hammer.js
- 移动端手势事件 hammer.JS插件
- 一个JavaScript库,用于多点触摸手势:Hammer.js
- 移动端手势hammer
- Hammer.js 手势事件
- hammer.js手势
- hammer.js 手势操作
- js hammer移动端web手势放大图片
- hammer.js手势处理文档
- 图片手势放大+hammer.js
- 【Hammer.js】一个优秀的、轻量级的触屏设备手势库
- 使用hammer.js实现移动端webAPP手势滑动切换页面
- JS页面间传值
- 用十条命令在一分钟内检查Linux服务器性能
- 【Java | IO】输出输入流
- 使用wsimport构建WebService客户端
- unity 用点乘和叉乘来判断 物体与人物的相对位置
- Hammer.js——移动设备触摸手势
- 异步消息的传递-回调机制
- 第三周 项目2 建设“顺序表”算法库
- 无符号整形的加减乘除运算
- HDU 5898 数位DP
- iOS开发 如何适配iOS10
- oracle11g 数据库导出报“ EXP-00003: 未找到段 (0,0) 的存储定义”错误的解决方案
- 猫都能学会的Unity3D Shader入门指南(二)
- JSP的3个编译指令、7个动作指令和9个内置对象