如果我用鼠标快速移动e.pageX无法识别路径

时间:2012-02-26 02:39:57

标签: jquery mousemove

我有这段代码:

$("#element").mousemove(function(e) {

   if(e.pageX == 255) {alert("here");}

});

当我用鼠标快速移动时,它无法识别它移动的整个路径,它返回例如260然后210 - 不像我期望260,259,258 ...这就是问题 - 我无法得到当我通过这个位置时,抓住确切的时刻,因为它没有返回这个位置。有没有其他方法可以像素后像素一样获得这个位置?感谢。

2 个答案:

答案 0 :(得分:4)

无法让浏览器通知您每个像素。您要做的最好的事情是每隔一定的毫秒数(可能是浏览器特定的)。

您可以通过检查每次调用函数时是否已越过位置来补偿此问题。它并不完美,但它更好:

http://jsfiddle.net/v4gTV/2/

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;”你的价值会在每次通过你的观点时触发你的事件