2010-02-25 48 views
1

我想使用.animate函數,但我有一些問題,我想改變'左'值,但我不知道我將移動的項目的寬度,所以如果我發送將動畫定時器設置爲1000,並且我的物品寬度爲100px,如果我的物品寬度爲500px,則該物品的寬度會有所不同;如果物品的寬度接近目標物品的末端,動畫會變得更快,是否有無需移動我的物品擔心速度和超時?如何使用jQuery不斷動畫

回答

6

如果我理解正確的話,你想改變你的動畫項目的左側,但你希望它在一個恆定速度移動,在恆定的時間尚未完成。實際上,以恆定速度移動項目是在javascript中設置動畫的默認方式(setInterval,setTimeout等)。JQuery是不希望執行繁瑣計算的人員的捷徑(更頻繁)希望在一段時間內發生轉變。

所以,有兩種方法可以做到。一:不要爲該動畫使用JQuery。使用setInterval或setTimeout進行日期差異檢查。二:使用JQuery,但計算寬度,所以你可以反向計算持續時間。您可以使用.width()獲得任何JQuery對象的寬度。從這裏,您可以計算出需要傳播的距離,並將其除以您希望保持不變的速度(每秒像素數),以便將時間插入到JQuery動畫函數中。合理?

+0

是非常感謝 – trrrrrrm 2010-02-25 07:55:51

2

如果有人對這個職位的土地jQuery函數動畫()有一個稱爲線性特性。 $()。animate({''},speed,linear) 這將使animate()函數以恆定的速度移動。

+0

[animate()](http://api.jquery.com/animate/)的第三個參數設置了緩動,它既不改變動畫的持續時間也不改變速度。 – daniels 2015-12-07 10:21:16