首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Hammer.js拖动事件

使用Hammer.js拖动事件
EN

Stack Overflow用户
提问于 2016-03-11 00:10:23
回答 2查看 2.6K关注 0票数 0

这是我的js,我已经做了一个swipeleft和swiperight事件,以便在左边显示一个工具栏。(这是一个带有触摸事件的智能手机应用程序)我想在上面添加拖动事件,以保持对工具栏的控制(就像在Facebook,Tinder的菜单栏上)。

你知道我怎么做吗?

代码语言:javascript
复制
$(function(){

    var page = document.getElementById("page");
    var sidebar = 0;

    Hammer(page).on("swipeleft", function(e) { 
        if (!sidebar){
            return true;
        }
          $(page).animate({left: "-=300"}, 500);
          sidebar = 0;  
    });

    Hammer(page).on("swiperight", function(e) {
        if (sidebar){
            return true;
        }
          $(page).animate({left: "+=300"}, 500) ;
          sidebar=1; 
    });
})

我已经试过了,但它不能识别drag和e.gesture.direction...

代码语言:javascript
复制
    Hammer(page).on("drag", function(e) {
            if ( e.gesture.direction === "right" && !sidebar){
                $(page).animate({left : e.gesture.deltaX + "px"}, 0);
            }
   });
EN

回答 2

Stack Overflow用户

发布于 2016-03-11 00:27:18

该事件名为pan,而不是drag。参见the docs

代码语言:javascript
复制
Hammer(page).on("panright", function(e) {
         if (!sidebar){
             $(page).animate({left : e.gesture.deltaX + "px"}, 0);
         }
});
票数 2
EN

Stack Overflow用户

发布于 2016-03-11 01:18:49

好了,我找到了!你是对的,@Cristy :)

这是一个可行的答案:

代码语言:javascript
复制
$(function(){

    var page = document.getElementById("page");
    var sidebar = 0;

    Hammer(page).on("swipeleft", function(e) { 
        if (!sidebar){
            return true;
        }
          $(page).animate({left: "-=300"}, 500);
          sidebar = 0;  
    });
    Hammer(page).on("panleft", function(e) {
         if (!sidebar){
             $(page).animate({left : e.deltaX + "px"}, 0);
         }
    });

    Hammer(page).on("swiperight", function(e) {
        if (sidebar){
            return true;
        }
          $(page).animate({left: "+=300"}, 500) ;
          sidebar=1; 
    });

    Hammer(page).on("panright", function(e) {
         if (!sidebar){
             $(page).animate({left : e.deltaX + "px"}, 0);
         }
});
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35921639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档