我有这段代码:
$("#element").mousemove(function(e) {
if(e.pageX == 255) {alert("here");}
});
当我用鼠标快速移动时,它无法识别它移动的整个路径,它返回例如260然后210 - 不像我期望260,259,258 ...这就是问题 - 我无法得到当我通过这个位置时,抓住确切的时刻,因为它没有返回这个位置。有没有其他方法可以像素后像素一样获得这个位置?感谢。
答案 0 :(得分:4)
无法让浏览器通知您每个像素。您要做的最好的事情是每隔一定的毫秒数(可能是浏览器特定的)。
您可以通过检查每次调用函数时是否已越过位置来补偿此问题。它并不完美,但它更好:
var prev = null;
$("#element").mousemove(function(e) {
var now = e.pageX;
if((prev < 50 && now > 50) || (prev > 50 && now < 50) || now == 50) {alert("crossed");}
prev = now;
});
答案 1 :(得分:0)
您可以跟踪当前情况并测试值是否为“&gt;”或“&lt;”你的价值会在每次通过你的观点时触发你的事件