由于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
参数只是在初始点击时设置,所以鼠标坐标在整个间隔内保持不变,任何想法我都能解决此?
答案 0 :(得分:1)
您还需要调用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
来完成。
答案 1 :(得分:0)
试试这个:
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);
}