首先:是的,我确实知道我想重新发明轮子。但这不是重点。我是 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)
}
其他的一切都可以理解。我也没有得到Deltas(我了解数学概念和东西),但我不明白如何使用它们(使用它们的正确方法)。
如果有人足够好心,纠正这个代码并解释我必须在以下代码的第 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"
}
})
}