使用 angular ng-swipe-left 和 ng-swipe-right 在滑动过程中旋转图像
rotate image while swipe is in progress using angular ng-swipe-left and ng-swipe-right
我正在使用 angular's
ng-swipe-left
和 ng-swipe-right
来捕获滑动事件(触摸)。我试图在滑动过程中根据滑动速度和方向旋转图像。
问题是我只能在滑动结束时捕捉到事件。
您必须监听 start 事件。它在 mousedown 或 touchstar 上被调用。但是你的问题是:在 start 事件之后,$swipe 正在监视 touchmove 或 mousemove 事件 ,直到在任一维度上移动的总距离超过一个小阈值之前,这些事件仍然被忽略.
一旦超过此 阈值,就会创建移动事件。
所以你必须在移动事件上添加一个监听器,只有 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
我正在使用 angular's
ng-swipe-left
和 ng-swipe-right
来捕获滑动事件(触摸)。我试图在滑动过程中根据滑动速度和方向旋转图像。
问题是我只能在滑动结束时捕捉到事件。
您必须监听 start 事件。它在 mousedown 或 touchstar 上被调用。但是你的问题是:在 start 事件之后,$swipe 正在监视 touchmove 或 mousemove 事件 ,直到在任一维度上移动的总距离超过一个小阈值之前,这些事件仍然被忽略.
一旦超过此 阈值,就会创建移动事件。
所以你必须在移动事件上添加一个监听器,只有 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