2011-11-07 44 views
0

什麼是做到這一點的最好辦法,的jQuery/JavaScript的對的keydown /鼠標按下流暢的動畫

  • setTimeout() and css({left: '+=1'});

  • 使用animation({left:+=30}, '300', 'linear');
  • 的最佳實踐

作爲畝因爲我認爲setTimeout和css()是正確的方式,我似乎無法達到正確的平滑度,更不用說這似乎吃了很多內存..

請注意,我不要嘗試在mousedown上進行動畫,並在mouseup上停止,而不是點擊時從一點到另一點的動畫。

回答

0

動畫()的十分之一增加值,這就是爲什麼它的順暢。

想你可以做同樣的CSS(),但爲什麼推倒重來。

0

我的猜測是,jQuery的動畫是最好的方法。

大量的工作已投入jQuery庫創建非常流暢的動畫。我試圖與兩者合作,但我總是得出結論:使用jQuery庫進行動畫更好,然後編寫自己的動畫代碼。

在我看來,這也是實現這種動畫的最簡單的方法。

編輯:如果你只有用最新的瀏覽器兼容,CSS3也是動畫的好方法:http://css3.bradshawenterprises.com/animations/

+0

事情是,當你使用動畫時,你必須動畫至少幾個像素,所以沒有實際按住按鈕,只需點擊,它將動畫這些少數像素。你知道我的意思,它不同於使用css和settimeout方法,它根本不會動畫,或者只動畫一個像素..並且不會,在這個特定的項目上我不能使用CSS3 .. – foxx

+0

如果你不想動畫你的html ,比你顯然不應該使用jQuery的動畫功能。 – Mathieu

+0

我認爲你誤解了我,[jsfiddle](http://jsfiddle.net/SLfYX/)只嘗試點擊,沒有按下按鈕,動畫動畫這些10px,這是相當不想要的效果,並獲得平滑和從動畫一致的fps,你不能做動畫({left:'+ = 1'}) – foxx