1、Pan事件:在指定的dom区域内,一个手指放下并移动事件,即触屏中的拖动事件。这个事件在触屏开发中比较常用:

Panstart 拖动开始

Panmove 拖动过程

Panend 拖动结束

Pancancel 拖动取消

Panleft 向左拖动

Panright 向右拖动

Panup 向上拖动

Pandown 向下拖动

2、Pinch事件: 在指定的dom区域内,两个手指(默认为两个手指,多指触控需要单独设置)或多个手指相对(越来越近)移动或相向(越来越远)移动时的事件:

Pinstart 多点触控开始

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区域内,一个手指轻拍或点击时触发该事件,该事件最大点击时间为250毫秒,超过这个时间按Press事件进行处理。

关于Tap与Click

在安卓触屏上,Tap事件和Click事件可以同时触发,但click事件会有几百毫秒的延迟,即先触发Tap事件,过一段时间再触发click事件。

关于某些事件监听不能触发的问题(比如swipeup)

var hammertime = new Hammer(document.getElementById(“test”));

hammertime.add(new Hammer.Swipe());

hammertime.on(“swipeup”,function() {…})

Hammer.JS在创建一个新对象时默认会添加些常用事件,但不是全部事件,有些没有默认添加的事件需要单独做监听,就像上面的代码中展示的一样。

当一个对象需要多个事件时,经官方api和测试结果,需要对一个事件添加多个监听:

var hammertime = new Hammer(document.getElementById(“test”));

hammertime.add(new Hammer.Swipe());

hammertime.on(“swipeup”, function(){…});

var hammertime1 = new Hammer(document.getElementById(“test”));

hammertime.on(“swipeleft”,function(){…});

最后一段存疑,经过我的测试,在一个hammertime上可以监听多个事件,效果与上面代码一样。

一段合适的示例代码:

<style>
#myElement {
background: silver;
height: 300px;
text-align: center;
font: 30px/300px Helvetica, Arial, sans-serif;
}
</style>
<div id="myElement"></div>
<script>
var myElement = document.getElementById('myElement');
// create a simple instance
// by default, it only adds horizontal recognizers
var mc = new Hammer(myElement);
// listen to events...
mc.on("panleft panright tap press", function(ev) {
myElement.textContent = ev.type +" gesture detected.";
});
</script>

hammer.js的六大事件的更多相关文章

  1. Hammer.js

    一.前言 移动端框架当前还处在初级阶段,但相对于移动端的应用来说已经有很长时间了.虽然暂时还没有PC端开发的需求量大,但移动端的Web必然是一种趋势,在接触移动端脚本的过程中,最开始想到的是juqer ...

  2. Hammer.js——给bootstrap添加触屏功能

    Hammer.js qq群号(html5技术交流):158677025   手机端演示二维码(或直接在手机中输入网址:http://lilinfeng.cncoder.me 浏览效果): 一.前言 移 ...

  3. 移动端手势事件 hammer.JS插件

                      一.引入hammer.JS 1.下载地址:http://download.csdn.net/detail/webxiaoma/9872249 2.官网地址:http ...

  4. vue+hammer.js完美实现长按、左滑,右滑等触控事件

    移动端使用手指直接操作的方式大受用户欢迎,这其中就包括了单点.多点.长按.双击等方式. 这么多触控事件,如果开发者自己实现,会浪费大量的时间和精力,快来看看 hammer.js 让我们轻松了多少吧. ...

  5. H5案例分享:JS手势框架 —— Hammer.js

    JS手势框架 -- Hammer.js 一.hammer.js简介 hammerJS是一个开源的,轻量级的触屏设备javascript手势库,它可以在不需要依赖其他东西的情况下识别触摸,鼠标事件.允许 ...

  6. Hammer.js手势库 安卓4.0.4上的问题

    Hammer.JS - v1.0.7dev - 2014-02-18 1.Hammer.JS 在安卓4.0.4 , 4.1上 touchmove事件丢失 https://code.google.com ...

  7. Hammer.js分析(四)——recognizer.js

    不同识别器会使用不同逻辑,根据从相关Input类获取到的事件对象和事件,实现自定义的触屏事件,例如tap.pinch等. 一.继承关系 Recognizer与前面的Input一样,也相当于是个抽象类. ...

  8. Hammer.js分析(三)——input.js

    input.js是所有input文件夹中类的父类,浏览器事件绑定.初始化特定的input类.各种参数计算函数. Input父类和其子类就是在做绑定事件,各种参数计算.整合.设置等返回自定义事件对象,交 ...

  9. Hammer.js分析(二)——manager.js

    “Manager”是所有识别器实例的容器,它为你设置的元素安装了交互事件监听器,并设置了触摸事件特性. manager.js中的代码会涉及到input.js和recoginzer.js中的内容,这里会 ...

随机推荐

  1. MVC5+EF6+AutoMapper+Bootstrap打造在线博客(1.0)

    目的:MVC5+EF6开发一个高并发.分布式的在线博客,等开发完成以后再用.net core,mysql重新开发,部署到linux系统上,这一系列就算完结,经验不足,大家一起讨论进步,源代码下载QQ群 ...

  2. js用户管理中心tab切换界面模板

    效果体验:http://hovertree.com/texiao/js/27/ 效果图如下: 代码如下: <!DOCTYPE html> <html> <head> ...

  3. WPF平台Grid控件性能比较

    WPF官方发布第一个版本至今已经有10年了, 我们几乎在同时也开始了XAML开发.即使经过多年打造,我们依旧尝试提高:我们真的成功打造了高效灵活的控件吗?我没有在其他地方找到任何关于优秀的WPF表格性 ...

  4. ABP之动态WebAPI(二)

    HttpControllerDescriptor与HttpActionDescriptor HttpControllerDescriptor封装了某个HttpController类型的元数据,我们可以 ...

  5. Lind.DDD.ILogicDeleteBehavor~逻辑删除的实现

    回到目录 关于逻辑删除 对于逻辑删除之前的做法是在实体类中加个字段,一般是status,其中一种状态是删除,当然也有其它做法,如加个bool的字段IsDeleted,这些其实都过于武断,即它在基类里加 ...

  6. 【工业串口和网络软件通讯平台(SuperIO)教程】五.二次开发图形显示界面

    SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    图形显示接口的作用 用于显示采集终端设备的数据,可以把不同类型设备的数据以多种形式集成显示在不 ...

  7. maven 间接依赖的jar自动引入

    很多时候,我们引用的第三方jar需要一些其他的第三方jar,这个时候默认情况下,间接需要依赖的第三方jar是不会自动被引入的,如果希望这些额外的三方jar被自动引入,则在Maven仓库中除了提交jar ...

  8. js 自动插入分号

    先来看一个例子: function get(){ return { a:1 } } var r=get(); console.log(r); 似乎r的值应该是{a:1},然而运行结果却是undefin ...

  9. C#登入例子--第一个程序

    第一步:在数据库创建一个存放账号密码的表单 第二步:创建一个登入项目 拆分成三层: CS层: BLL层: DAL层: Common层: Web.config:

  10. HTML5自定义属性之data-*

    HTML5 增加了一项新功能是 自定义数据属性 ,也就是  data-* 自定义属性.在HTML5中我们可以使用以 data- 为前缀来设置我们需要的自定义属性,来进行一些数据的存放.当然高级浏览器下 ...