Javascript鼠标移动事件触发

Javascript鼠标移动事件触发,javascript,jquery,Javascript,Jquery,有没有一种方法可以使用mousemove事件捕获光标与之碰撞的每个像素?这样,以下条件将持续激发 if(e.pageX == 100) 我发现如果鼠标移动得很快,那么它会跳过像素。。但是,如果我慢慢移动它,它会一个接一个地捕捉像素 感谢每次鼠标移动都会触发Mousemove,并以鼠标覆盖的最顶部和最嵌套的元素为目标。 当浏览器内部计时仅允许时,会触发Mousemove、mouseover和mouseout。 这意味着如果快速移动鼠标,将跳过中间DOM元素和父元素 因此,您可以在不触发任何mo

有没有一种方法可以使用mousemove事件捕获光标与之碰撞的每个像素?这样,以下条件将持续激发

if(e.pageX == 100) 
我发现如果鼠标移动得很快,那么它会跳过像素。。但是,如果我慢慢移动它,它会一个接一个地捕捉像素


感谢

每次鼠标移动都会触发Mousemove,并以鼠标覆盖的最顶部和最嵌套的元素为目标。 当浏览器内部计时仅允许时,会触发Mousemove、mouseover和mouseout。 这意味着如果快速移动鼠标,将跳过中间DOM元素和父元素

因此,您可以在不触发任何mousemove/mouseover的情况下在元素上移动

当浏览器跳过中间元素时,也可以在父对象上从子对象移动到父对象,而无需任何鼠标事件

您唯一能保证的是,只要鼠标悬停被触发,鼠标悬停也会被触发。

检查鼠标光标,如果自上次触发
mousemove
事件以来位置已更改,但仅使用新检测到的位置

您可以做的是存储最后一个已知的鼠标位置,并计算该位置与当前位置之间的直线以进行计算。 这不需要太多代码。。。一个简单的方法是

// Calls `f(x, y)` for each point starting from
// `(x0, y0)` and ending in `(x1, y1)` (excluded)
// moving along an 8-connected straight path.
function processLine(x0, y0, x1, y1, f) {
    var ix = x0 < x1 ? 1 : -1, dx = Math.abs(x1 - x0);
    var iy = y0 < y1 ? 1 : -1, dy = Math.abs(y1 - y0);
    var m = Math.max(dx, dy), cx = m >> 1, cy = m >> 1;
    for (var i=0; i<m; i++) {
        f(x0, y0);
        if ((cx += dx) >= m) { cx -= m; x0 += ix; }
        if ((cy += dy) >= m) { cy -= m; y0 += iy; }
    }
}

你想达到什么目标?如果将条件更改为
=
,则可以检测边缘。请看这里:我想检查每个100px,看看左上角的元素是否通过so:element.position()。左%100==0正如我所说的,它与像素无关,它是时间限制,不同浏览器可能会有所不同,所以不能指望它是一致的,例如,你不能假设在1秒内只能处理10个mousemove事件。是的,我知道:(我只是想有人可能知道解决方法。无论如何,谢谢你的帮助。)。
processLine(10, 20, 30, 35, function(x, y) {
    console.log("x=" + x + ", y=", y);
});