有没有办法在jquery中停止和开始触发鼠标移动功能
Is there a way to stop and start triggering mousemove function in jquery?
这适用于触摸设备。我有一个滚动列表,当我触摸列表元素时,它会突出显示,当我们在没有垂直移动的情况下移除手指时,它将转到其详细信息页面。但是当我们向上或向下滑动(向上或向下可能超过 9px 像素)时,此突出显示应该消失。这意味着这是滑动尝试,而不是单击尝试。
我正在使用.mousemove()函数来实现这一点。但是 .mousemove() 正在为浏览器创建过多的 CPU 使用率。我需要减少 CPU 使用率。那么有没有办法在鼠标位置垂直移动超过 9 像素时杀死 .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
}}
相关文章:
- javascript:检查鼠标是否按下并从零开始计数,x秒后重定向
- 有没有办法在jquery中停止和开始触发鼠标移动功能
- 草图.js - 画笔从鼠标指针下方开始
- 根据鼠标移动将背景位置 x px 向左/向右移动(从背景位置:中心开始)
- 等待文档鼠标按下完成,然后元素单击才能开始
- 如何在Javascript/jQuery中获取鼠标移动事件的开始时间
- 当鼠标悬停在元素上时,如何停止/开始循环滑块
- jCarousel在鼠标悬停时开始自动滚动
- 如何在开始拖动任何对象时使iframe跟随鼠标光标
- Raphael JS -鼠标悬停时开始/继续动画.鼠标离开时暂停动画
- 动画在悬停时停止,在鼠标离开时开始,但不能再次悬停以重复停止动画
- 如何在鼠标悬停时停止jQuery函数并在鼠标离开时开始
- 如何确定鼠标光标的开始点和停止点?
- 如何开始一个youtube视频从鼠标上的图像点击
- 单击鼠标启动动画gif,从第一帧开始
- 鼠标向下时开始悬停,鼠标向上时停止
- 选框移动应该在鼠标悬停时停止,在离开时开始
- 如何停止幻灯片显示在鼠标上(幻灯片显示应该像往常一样开始后鼠标退出)在java脚本
- Jquery停止/开始鼠标移动点击
- 点击不工作,只有触摸开始鼠标向下