2010-08-12 125 views
1

我有我的對象使用onmousemove事件跟蹤鼠標。但我想讓它順利。我確信這在jQuery中並不困難,但我沒有找到任何非常好的資源。jQuery平滑鼠標跟蹤

我的一個想法是簡單地使用動畫功能並計算我想要移動的偏移量。然後,如果鼠標在動畫完成之前再次移動,我將使用停止功能停止動畫。我會重新計算我的目的地,然後我又走了。這似乎有點黑客,我也想象它會有點生澀。我相信必須有更好的方法。有任何想法嗎?

編輯
對不起,我沒有讓我的問題很清楚。我有實時跟蹤鼠標的對象,以便它的移動與我的鼠標完全相同。問題在於我希望它能夠流暢並落後於下面提到的Andy Lin等加速效果。我只是有點失落如何實際執行此操作。

+0

我不明白。 – 2010-08-12 13:10:44

+0

現在發生了什麼,你不想要?你想成爲什麼「順利」,你是什麼意思? – lincolnk 2010-08-12 13:12:52

回答

1

恐怕沒有比動畫更好的方法了。如果你添加一個平滑函數,那麼你只需要做與動畫相同的事情。當然,不要排列你的動畫或他們看起來很奇怪。我得到了不錯的結果:

var obj = $('<div style="width:50px;height:50px;background:red;position:absolute"></div>'); 

obj.appendTo(document.body); 

$(document).bind('mousemove',function(ev){ 
obj.animate({top:ev.pageY,left:ev.pageX},{queue:false,duration:200,easing:'linear'})}); 
+0

看起來它會非常接近我所尋找的! – Icode4food 2010-08-12 13:31:40

+0

你錯過了什麼? – Baju 2010-08-12 14:41:15

+0

我唯一缺少的就是嘗試一下,弄清楚什麼行不通! – Icode4food 2010-08-12 14:55:34

1

當你使用onmousemove時,你不需要讓對象在每次調用時改變它的行爲。

例如你可以添加一個定時器來說,在一段時間內,對象不會響應鼠標移動,並且會按照它的原始路徑,並在超時或鼠標移動停止時,根據目的地移動。

此外,您可以使用動畫設置模擬加速和減速效果。

+0

你在這裏與我正在尋找的權利。你給了我一些想法,但我不太清楚實現。 – Icode4food 2010-08-12 13:25:41