• hammer.js的六大事件


    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>
  • 相关阅读:
    android自定义通知栏遇到的问题
    写博客号的初衷
    模型转换遇关键字
    界面传值的四种方式
    button循环添加事件
    解析数据的步骤
    数组排序 (数组是有序容器,因此集合中只有数组才能排序。)
    集合遍历
    自定义view和自定义cell
    cell自适应高度
  • 原文地址:https://www.cnblogs.com/1000px/p/4741710.html
Copyright © 2020-2023  润新知