まず第一に、はい、私は車輪を再発明したいことを知っています. しかし、これはポイントではありません。私はJavascriptが初めてで(学校で基本的なトレーニングを受けました)、Javascriptで作成されたアニメーションをコピーして貼り付けるだけでなく、理解したいと思っています。特定のパラメーターを変更して、Web ページの見栄えを良くしたいと考えています。
これが私の問題です(おそらく非常にばかげた質問ですが、とにかく)。この 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 行目に何を書かなければならないかを説明してくれる親切な人がいれば、線形デルタが必要な場合は、本当に感謝しています。また、アニメーション化する関数 (この場合は関数 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"
}
})
}