【发布时间】:2016-03-11 05:54:31
【问题描述】:
这适用于触控设备。我有一个带有滚动条的列表,当我触摸列表元素时,它会突出显示,当我们在没有垂直移动的情况下移开手指时,它将转到其详细信息页面。但是当我们滑动时(可能向上或向下滑动超过 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 jquery angularjs