如何用间隔刷新鼠标向下的事件参数

How to refresh event argument on mouse down with interval?

本文关键字:事件 参数 鼠标 何用间 刷新      更新时间:2023-09-26

由于onmousedown不像你持有onkeydown那样工作,我不得不妥协并创建我自己的风格,到目前为止,我已经想到了这个:

can.onmousedown = function(e) { 
    map.moving = setInterval(function() {
        console.log(e.pageX + ' ' + e.pageY);
        map.posX = e.pageX;
        map.posY = e.pageY;
    }, 70);
}
can.onmouseup = function(e) {
    clearInterval(map.moving);
}

这工作得很好,我现在唯一的问题是,e参数只在初始点击时设置,所以鼠标的坐标在整个间隔内保持不变,你知道我该如何解决这个问题吗?

您还需要调用mousemove

can.onmousemove = function(e) {
    if( map.moving ) {
        console.log(e.pageX + ' ' + e.pageY);
        map.posX = e.pageX;
        map.posY = e.pageY;
    }
};
can.onmousedown = function(e) {
    map.moving = true;
};
can.onmouseup = function(e) {
    map.moving = false;
};

可选地,您可能希望解耦并减慢mousemove处理程序的执行,因为这种情况发生了(像scroll events一样,非常快)。这也可以通过调用timeouts来实现。

试试这个:

can.onmousedown = function(e) { 
    map.moving = setInterval(function() {
        e = e || window.event;
        console.log(e.pageX + ' ' + e.pageY);
        map.posX = e.pageX;
        map.posY = e.pageY;
    }, 70);
}
can.onmouseup = function(e) {
    clearInterval(map.moving);
}