插件: Hammer.js

官网:

http://hammerjs.github.io/   hammer.js 官网

http://hammerjs.github.io/api/  官网API(官网写的实在太简了!不好用。注意里面关键字,另外还得搜索引擎查相关文章)  2015-12-9

下载:

http://hammerjs.github.io/dist/hammer.js

http://hammerjs.github.io/dist/hammer.min.js   下载hammer.js   v2.0.4  2015-11-13

文章:

http://www.cnblogs.com/iamlilinfeng/p/4239957.html   教程及示例:移动端脚本框架,他可以完美的实现在移端开发的大多数事件,如:点击、滑动、拖动、多点触控等事件。不需要依赖任何其他的框架  下载教程DEMO源码

http://hammerjs.github.io/getting-started/  2015-11-20

http://www.awesomes.cn/repo/hammerjs/hammer-js  关于hammer的一些介绍和下载  2015-12-9

http://www.tuicool.com/articles/VNRjym7   移动端手势库hammerJS 2.0.4官方文档翻译(重要! swipeup 和swipedown无效的问题是参考此文解决的)  2015-12-9

http://www.cnblogs.com/aaronjs/p/4024819.html   移动开发框架剖析(一) Hammer专业的手势控制  2015-12-9

http://www.cnblogs.com/aaronjs/p/4029304.html   移动开发框架剖析(二) Hammer专业的手势控制  2015-12-9

 


 

1、Pan事件:(事件:触屏中的拖动)

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

  panstart:拖动开始
  panmove:拖动过程
  panend:拖动结束
  pancancel:拖动取消

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区域内,一个手指快速的在触屏上滑动。即我们平时用到最多的滑动事件。
  swipe:滑动
  swipeleft:向左滑动
  swiperight:向右滑动
  swipeup:向上滑动  (注意:默认写法,左右滑动有效,但上下滑动时,会出现swipeup和swipedown无效的问题。所以要加下面代码!)2015-12-9
  swipedown:向下滑动

var hammertime = new Hammer(document.getElementById("test"));
//若要允许识别器识别垂直方位或全部方位的 pan 和 swipe,可以加这两句:
hammertime.get('pan').set({ direction: Hammer.DIRECTION_ALL });
hammertime.get('swipe').set({ direction: Hammer.DIRECTION_ALL});  //DIRECTION_VERTICAL:放开up down事件  DIRECTION_HORIZONTAL:放开left right事件
hammertime.on("swipe", function (e) {
    console.log("swipe :  X偏移:"+e.deltaX+", Y偏移:"+ e.deltaY);
});

 

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

 


来源于:http://hammerjs.github.io/api/

Name         Value
type             事件的名称,比如 panstart
deltaX          X坐标轴上的移动距离
deltaY          Y坐标轴上的移动距离
deltaTime         交互过程的总时长(毫秒)
distance        移动距离
angle          移动角度
velocityX       在X坐标轴上的移动速率,单位为px/ms
velocityY       在Y坐标轴上的移动速率,单位为px/ms
velocity         X/Y上最高的速率值
direction           移动方位,匹配 DIRECTION 常量
offsetDirection      从起始点算起的移动方位。匹配DIRECTION常量
scale            多点触摸结束时的缩放比例,若为单点触摸则为1
rotation        多点触摸结束时的缩放比例,若为单点触摸则为0
center          多点触摸的中心位置,或者单点的坐标————(用到)
srcEvent       源事件对象,类型为TouchEvent,MouseEvent或PointerEvent.
target           接收事件的目标
pointerType      基本的指针类型,可以为touch,mouse,pen,或kinect
eventType        事件类型,匹配INPUT常量
isFirst        true 表示当前交互为首次交互
isFinal         true 表示当前交互为最后一次交互
pointers            由指针类型组成的数组,包含了最终指针类型(touchend,mouseup)
changedPointers    由new/moved/lost 指针类型组成的数组
preventDefault    参考srcEvent.preventDefault()方法。主要给熟手使用的


 

事件:

Hammer.on(window, "load resize scroll", function(ev) {
    console.log(ev.type);
});

 

 

..

posted on 2015-11-13 13:22 bjhhh 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/qq21270/p/4961868.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
旋转手势是hammer.js库中的一个功能,它允许用户通过触摸屏幕来旋转一个元素。然而,有时候在使用hammer.js的过程中可能会遇到旋转功能的bug。 旋转bug可能有不同的表现形式,如旋转过程中元素位置的跳动、旋转角度的不稳定或者旋转速度异常等等。这些问题与hammer.js库本身的设计或者配置有关,所以我们可以通过检查代码和配置项来解决旋转bug。 首先,可以确保hammer.js库的版本是最新的,因为更新版本通常会修复一些旧版本中的bug。然后,我们可以检查hammer.js的配置项,例如可触摸元素的选择器、旋转的阈值、旋转的方向等等。根据旋转bug的具体表现,可能需要调整这些配置项来获得更好的用户体验。 此外,我们还可以检查其他可能影响旋转功能的因素。例如,元素的CSS样式是否正确设置了旋转的中心点、是否存在其他与旋转相冲突的事件监听器等等。通过排查这些因素,我们可以找到并解决造成旋转bug的根本原因。 如果以上方法无法解决旋转bug,还可以考虑使用其他库或者自行实现旋转功能。有一些其他的JavaScript库或者插件也提供了类似的旋转功能,可以避免hammer.js的bug。另外,如果具备前端开发的能力,可以尝试自行实现旋转功能,这样可以更好地掌控代码和调试bug。 总之,解决hammer.js旋转bug的方法包括检查代码和配置项、更新库版本、检查其他可能影响旋转的因素,并可以考虑使用其他库或自行实现旋转功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值