没有。
检查鼠标光标,如果自上次触发 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; }
}
}
并且可以作为
processLine(10, 20, 30, 35, function(x, y) {
console.log("x=" + x + ", y=", y);
});