2

我正在使用angular's ng-swipe-leftandng-swipe-right来捕捉滑动事件(联系)。我正在尝试在滑动过程中根据滑动速度和方向旋转图像。问题是我只能在滑动结束时捕捉到事件。

4

1 回答 1

2

你必须听开始事件。它在 mousedown 或 touchstar 上调用。但是您的问题是:在开始事件之后, $swipe 正在监视 touchmove 或 mousemove 事件,这些事件仍然被忽略,直到在任一维度上移动的总距离超过一个小阈值。

一旦超过此阈值,就会创建移动事件。

所以你必须在 move 事件上添加一个监听器,只有 Angularjs 是不可能的。

我认为你必须像这样在 JQuery 中使用一些东西:

$('#someElm').bind('touchmove',function(e){
      e.preventDefault();
      var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
      var elm = $(this).offset();
      var x = touch.pageX - elm.left;
      var y = touch.pageY - elm.top;
      if(x < $(this).width() && x > 0){
          if(y < $(this).height() && y > 0){
                  //CODE GOES HERE
                  console.log(touch.pageY+' '+touch.pageX);
          }
      }
});

关于这个问题的 Angular 文档:AngularJS API:$swipe

于 2015-10-14T14:58:52.833 回答