Soy nuevo en la animación, pero recientemente he creado una animación usando setTimeout
. El FPS era demasiado bajo, así que encontré una solución para usar requestAnimationFrame
, que se describe en este link.Cómo utilizar requestAnimationFrame?
Hasta ahora, mi código es:
//shim layer with setTimeout fallback
window.requestAnimFrame = (function(){
return
window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function(/* function */ callback){
window.setTimeout(callback, 1000/60);
};
})();
(function animloop(){
//Get metrics
var leftCurveEndX = finalLeft - initialLeft;
var leftCurveEndY = finalTop + finalHeight - initialTop;
var rightCurveEndX = finalLeft + finalWidth - initialLeft - initialWidth;
var rightCurveEndY = leftCurveEndY;
chopElement(0, 0, 0, 0, leftCurveEndX, leftCurveEndY, rightCurveEndX, rightCurveEndY);//Creates a new frame
requestAnimFrame(animloop);
})();
Esto evita que durante la primera trama. Tengo una función de devolución de llamada requestAnimFrame(animloop);
en la función chopElement
.
Además, ¿hay una guía más completa para usar esta API?
¿Por qué etiquetar esto con 'jquery' a esta pregunta tiene nada que ver con eso. – Jan
Como regla general, tenga mucho cuidado con los retornos en JS, si elimina la nueva línea después de la devolución, esto funcionará. –