我的javascript中出现了一个奇怪的故障(逻辑错误)我不确定它是我的数学还是我编写代码的方式。
我的想法是左键单击并拖动以在画布上滚动地图。它工作得很好,除非当我向下鼠标向下滚动第二次时,地图会重置为x0y0偏移量。
所以基本上我不能继续滚动,因为只要我放开鼠标并再次将其重新开始回到起点。
所以我就这样做了:
//this is in the init function called on body load
canvas.addEventListener("mousedown", mousePos, false);
//relevant functions
function mousePos(e){
mousex = e.pageX;
mousey = e.pageY;
canvas.addEventListener("mousemove", movePos, false);
}
function movePos(e){
canvas.addEventListener('mouseup',onMouseUp,false);
offset_x = e.pageX - mousex; //pixels to move the map along x
offset_y = e.pageY - mousey; //pixels to move the map along y
}
function onMouseUp(){
// on mouse up stop moving the map
canvas.removeEventListener('mousemove',movePos,false);
}
有什么想法吗?
答案 0 :(得分:1)
offset_x
和offset_y
。在mouseup上,您应该将这些值添加到地图的总偏移量中,并将它们归零。mousePos()