我正在尝试点击并在Javascript中拖动背景,因此我制作了this fiddle。但它有一个问题。
当您单击并向左拖动时,背景向右移动,因此我跟踪鼠标的位置,将其与mousedown进行比较,并通过差异滚动主体。但是,当它达到0时,差异是负的,所以如果你移过那个差异,然后再次向右移动,你必须移动你过去的像素数量,这使得它很奇怪。
所以为了解决这个问题,我把这段代码:
if(difX < 0){
md.x = mm.x;
}
这使得,如果差值小于0(即:到达边缘),则mousedown位置与mousemove相同,因此当您移动到另一侧时,差异不再是负的,并且可以再次开始增加。
问题是当你到达边缘时它会跳跃。
我只在X位置做过这个,但是一旦我解决了,我会为Y做同样的事情。提前谢谢!
答案 0 :(得分:0)
没关系,解决了,问题是sl
变量在达到负差异时没有改变,所以它使用了存储在mouseup上的那个并且由于这些数字之间的差异而跳跃了, here's the solved fiddle