そのため、私は良きネット市民であり、機能検出を使用してブラウザーがサポートしているかどうかを確認し、それ以外の場合はベースのソリューションrequestAnimationFrame
にフォールバックするだけです (ポール アイリッシュの有名な投稿の行の周りの何か)。setTimeout
var NOW = Date.now || function () { return new Date.getTime(); };
var reqAnimFrame =
window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
/* ... || */
function (callback) {
setTimeout(function () { callback(NOW()); }, 1000 / 60);
};
var previousTime = NOW();
function animStep(time) {
var timePassed = time - previousTime;
myCharacter.move(myCharacter.speed * timePassed);
previousTime = time;
reqAnimationFrame(animStep);
}
// start the animation
reqAnimationFrame(animStep);
Internet Explorer 10 が登場するまで、これはどこでもうまく機能していました。IE10 では、time
渡されたパラメーターは現在の時刻とは関係がないようで、 の計算が台無しになりますtimePassed
。
どうしたの?