我是新來的動畫,但我最近使用setTimeout
創建了一個動畫。 FPS太低了,所以我找到了使用的解決方案,在link中有描述。如何使用requestAnimationFrame?
到目前爲止,我的代碼是:
//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);
})();
這在第一幀停止。我在chopElement
函數中有一個回調函數requestAnimFrame(animloop);
。
另外,有沒有更徹底的使用這個API的指南?
你爲什麼用‘jQuery的’標籤這個這個問題有 – Jan 2011-04-09 14:47:10
作爲一般規則,在JS中返回時要非常小心,如果在返回後刪除換行符,這將起作用 – 2011-04-09 16:44:03