首先:是的,我知道我想重新發明輪子。但這不是重點。我是Javascript新手(我在學校接受過一些基本培訓),我想了解不僅僅是複製和粘貼Javascript中的動畫。我希望能夠改變某些參數,使我的網頁看起來更好。從頭開始的Javascript動畫
所以這裏是我的問題(這可能是非常愚蠢的問題,但無論如何)。我發現這個Javascript動畫教程:http://javascript.info/tutorial/animation#the-basics-of-the-animation
這正是我一直在尋找的,只是它寫得很差(在我看來(我是一個完美主義者)),並不時地有點難以理解。所以我真的沒有得到第7行和第8行(粗體):
function animate(opts) {
var start = new Date
var id = setInterval(function() {
var timePassed = new Date - start
var progress = timePassed/opts.duration
if (progress > 1) progress = 1
var delta = opts.delta(progress)
opts.step(delta)
if (progress == 1) {
clearInterval(id)
}
}, opts.delay || 10)
}
其他一切都是可以理解的。而我也沒有得到的是德爾塔斯(我理解數學概念和東西),但我不明白如何使用它們(正確的方式來使用它們)。
如果有人足夠的話,要糾正這段代碼並解釋我要寫的第7行代碼,如果我想要線性Delta,我會非常感激。我也想知道如何正確調用函數來設置動畫(在這種情況下,函數move())。
function move(element, delta, duration) {
var to = 500
animate({
delay:10,
duration:duration || 1000, // 1 sec by default
delta:delta,
step:function (delta) {
element.style.left = to * delta + "px"
}
})
}
好吧,我終於明白了。我仍然不知道什麼是錯誤的,但是我在非常仔細地重寫所有內容之後設法得到它。感謝您的回答。 – user1507270 2012-07-06 17:51:08