2011-06-27 51 views
1

我創建了(http://jsfiddle.net/XMhMR/1/)一個簡單的div,您可以點擊並拖動。無論何時單擊並拖動,div移動的速度爲,閃電速度爲Div點擊+拖動速度太高?

我想要更多的谷歌地圖風格的點擊和拖動,它不是那麼快。我嘗試將delta分爲10倍,但奇怪地加速和減速。任何人都知道發生了什麼事?

回答

2

您應該像處理「當前位置」一樣處理滾動變量。將它們存儲在對象中而不是每次都抓取它們。基本上,每次移動時都會添加每個移動。如果你移動2點,然後移動2點,第一次移動2點,那麼你第二次移動2點+2點。但是你已經移動了2,所以現在你移動的是6而不是4 ......這樣做最終會變得非常快。

http://jsfiddle.net/XMhMR/3/

0

沒關係,我發現我是個傻瓜。固定版本在這裏:http://jsfiddle.net/XMhMR/2/

總結:不要重新計算每個鼠標移動事件的scrollLeft和scrollTop位置,因爲實際上會使delta增加,導致加速。