Jquery 触摸滑动事件/无 jQuery 移动

标签 jquery swipe jquery-events touch-event hammer.js

我一直在寻找一个好的 jQuery 库,它允许我将触摸事件附加到 DOM 元素,特别是滑动/点击。

我尝试过hammer.js,在文档中它告诉我它具有滑动效果,但是当我尝试像 $('.element').on('swipe', function() 那样附加它时{//do smth }); 它不起作用。

我能够通过使用其“dragend”事件来模拟滑动,但不好的是有时它有效,有时则无效。

为了更具体地说明我想要实现的目标 - 检查手机上的 Twitter 网站,并尝试在时间线/提要中向左/向右滑动一条推文,它应该会显示一些“回复”/“转发”的操作按钮'/'最喜欢的'。

任何人都可以给我一个代码示例或一个包含有关如何实现此目标的良好文档的库吗?

P.S:我无法在此项目中使用 jQuery mobile。

最佳答案

我无法帮助您使用库,但我可以复制/粘贴我用来使用 JQuery 进行滑动的内容。 此示例仅适用于上下滑动,但很容易适应其他手势。

这是插件部分:

;(function($) { 
  $.fn.tactile = function(swipe) {
    return this.each(function() {
      var $this = $(document),
      isTouching = false,
      debut;                                // means start in french

      $this.on('touchstart', debutGeste);       

      function debutGeste() {               // means start of gesture
        if (event.touches.length == 1) {
          debut = event.touches[0].pageY;
          isTouching = true;
          $this.on('touchmove', geste);
        }
      }

      function finGeste() {                 // means end of gesture
        $this.off('touchmove');
        isTouching = false;
        debut = null;
      } 

      function geste() {                   // geste means gesture
        if(isTouching) {
          var actuel = event.touches[0].pageY,
          delta = debut - actuel;

          if (Math.abs(delta) >= 30) {     // this '30' is the length of the swipe
            if (delta > 0) {
              swipe.up();
            } else {
              swipe.down();
            }                       
            finGeste();
          }
        }
        event.preventDefault(); 
      }
    });
  };
})(jQuery);

这是使用部分:

$(document).tactile({   
  up: function() { }, 
  down: function() { }
});

我不能保证这是正确的方法,这也不是好的代码,但它可以工作。

关于Jquery 触摸滑动事件/无 jQuery 移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12428433/

相关文章:

jquery - 使用python中的pyquery删除html中的所有隐藏元素

java - 如何使用 onFling() 制作 android 脚蹼动画?

javascript - jQuery .click 问题

javascript - 使用鼠标粘贴文本不会触发搜索

javascript - 一次选择一个单选按钮

javascript - 我在 ajax 成功中收到我的数据如何在表中显示 jquery 数据

jquery - Spring:在 IE 中对 @ResponseBody 参数编码的 Ajax 调用失败

android - 不使用 fragment 的可滑动标签

jquery - 当幻灯片不在原始位置时,危险的刷卡链接不起作用

javascript - 使用 on() 触发表单提交