Javascript 在jquery中是否有停止和启动触发mousemove函数的方法?

Javascript 在jquery中是否有停止和启动触发mousemove函数的方法?,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,这是针对触摸设备的。我有一个滚动列表,当我触摸列表元素时,它会高亮显示,当我们不垂直移动手指时,它会进入详细信息页面。但当我们滑动时(向上或向下可能超过9px像素),这个突出显示应该消失。这意味着这是一次滑动尝试,而不是单击尝试 我正在使用.mousemove()函数来实现这一点。但是.mousemove()为浏览器创建了过多的CPU使用。我需要减少CPU的使用。那么,当鼠标位置垂直移动超过9 px时,有没有办法杀死.mousemove()事件?如果我们再次尝试刷卡,这个.mousemove()

这是针对触摸设备的。我有一个滚动列表,当我触摸列表元素时,它会高亮显示,当我们不垂直移动手指时,它会进入详细信息页面。但当我们滑动时(向上或向下可能超过9px像素),这个突出显示应该消失。这意味着这是一次滑动尝试,而不是单击尝试

我正在使用.mousemove()函数来实现这一点。但是.mousemove()为浏览器创建了过多的CPU使用。我需要减少CPU的使用。那么,当鼠标位置垂直移动超过9 px时,有没有办法杀死.mousemove()事件?如果我们再次尝试刷卡,这个.mousemove()事件应该会再次触发

下面是我的代码。这里的“mousedownPosY”是我们触摸屏幕时鼠标的y位置。“newMouseupPosY”是我们在刷卡时获得的值。如果它们的差异超过9px,则将尝试滑动并删除列表项上的突出显示

$scope.mousemove=function(index,e){
    var newMouseupPosY = e.pageY;
    var mouseDiff = Math.abs(mousedownPosY - newMouseupPosY);
    if ((Math.abs(newMouseupPosY - mousedownPosY)) > 9) {
      //do something
    }
};
如果有比.mousemove()更好的方法,请共享


提前谢谢

对于触摸设备,您可以使用Javascript触摸事件,如touchstart、touchmove、touchend

尝试下面的代码可能会对您有所帮助

var startY = 0,
curY = 0;
window.addEventListener('touchstart', onTouchStart);window.addEventListener('touchmove', onTouchMove);



function onTouchStart(event) {
startY = 0;
curY = 0;

startY = event.touches[0].pageY;}

function onTouchMove(event) {
curY = event.touches[0].pageY - startY;

if (Math.abs(curY) > 9) {
    // do something
}}

触摸与鼠标事件具有不同的事件