Leave a Comment
requestAnimationFrame для оптимизации анимации в браузере
Это замена обычной покадровой отрисовки по setTimeout.
Пример:
(function() {
var requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
window.requestAnimationFrame = requestAnimationFrame;
})();
var start = window.mozAnimationStartTime; // Only supported in FF. Other browsers can use something like Date.now().
function step(timestamp) {
var progress = timestamp - start;
d.style.left = Math.min(progress/10, 200) + "px";
if (progress < 2000) {
requestAnimationFrame(step);
}
}
requestAnimationFrame(step);
Polyfill:
var requestAnimationFrame = window.requestAnimationFrame
|| window.webkitRequestAnimationFrame
|| window.mozRequestAnimationFrame
|| window.oRequestAnimationFrame
|| window.msRequestAnimationFrame
|| function (callback) {
return window.setTimeout(callback, 1000 / 60);
};
https://developer.mozilla.org/en-US/docs/DOM/window.requestAnimationFrame,
http://habrahabr.ru/post/114358/
http://www.xiper.net/collect/js-plugins/overclock-site/programm-animation.html (пример перевода анимации с setTimeout)
LEAVE A COMMENT
Для отправки комментария вам необходимо авторизоваться.