我创建了一个简单的div(http://jsfiddle.net/XMhMR/1/),您可以单击并拖动它。但是,无论何时单击并拖动,div都会以闪电速度移动。
我想要更多Google地图风格的点击和拖动,而不是那么快。我尝试将增量除以10倍,但它奇怪地加速和减速。有谁知道发生了什么事?
答案 0 :(得分:2)
您应该像处理“当前位置”一样处理滚动变量。将它们存储在对象中,而不是每次都抓住它们。你基本上每次移动都会添加每个动作。如果你移动2像素,那么另外2,第一次移动2,然后第二次移动2 + 2。但是你已经移动了2,所以现在你移动了6而不是4 ......这构建得最终变得非常快。
答案 1 :(得分:0)
没关系,我发现我是个傻瓜。固定版本位于:http://jsfiddle.net/XMhMR/2/。
总结:不要在每次mousemove事件上重新计算scrollLeft和scrollTop位置,因为这实际上会使delta加倍,从而导致加速。