javascriptsetInterval
関数を使用してボックス回転アニメーション効果を実現したい、アニメーションを1.5秒保持したい、1.5秒でボックスが360度回転するので、1ミリ秒で増分を計算し、ミリ秒あたりのsetInterval関数を使用します。コード:
var duration= 1500;//The animation duration time
var rotate = 360;//The rotate need to be rotate
var degPerSec = rotate / parseFloat(duration); //the increment per millisecond
var degree = 0;//the begin degree
console.time('rotate');
var timer = setInterval(function () {
degree = degree + degPerSec;
$('#test')[0].style.MozTransform = 'rotate(' + degree + 'deg)';
$('#test')[0].style.WebkitTransform = 'rotate(' + degree + 'deg)';
if (degree >= rotate) { //if reach 360 degree , clear the interval
clearInterval(timer);
console.timeEnd('rotate');// caculate the duration
}
}, 1)
})
アニメーションは正常に実行できましたがconsole.time
、全体の継続時間を計算するために使用すると、1.5秒だけでなく、約6秒続くようです!1.5秒ではありません。なぜこれが発生したのですか?この問題を解決するにはどうすればよいですか?
これがデモです
更新:: css3:cuzを使用しない理由回転度はパラメーターとして使用されます。これには、まだ定義されていない、外部のパスフォームが必要です。