我使用setTimeout在Javascript中創建動畫,但它似乎不工作。只有動畫的第一個動作被執行,沒有後續動作。在javascript中使用setTimeout做簡單的動畫
我嘗試過使用Firefox的兩個不同的筆記本電腦,其中一個不會引發任何錯誤,但是一個說self.animateCallback is not a function
。我還看到其他錯誤,比如說我的超時函數是無用的,或者當我嘗試差異方式時,「編譯並行」。似乎沒有得到它的工作。我試過"function(self){self.animateCallback()}"
和"self.animateCallback"
(有和沒有引號)。
代碼如下,它是原型方法的一部分。
increment : function(incr, target, tick) {
var self = this;
self.animateCallback = function()
{
var done = Math.abs(self.currValue - target) < Math.abs(incr);
if(!self.animateCallback || done) {
if(done) {
self.updateAngle(self.currValue/self.maxValue);
self.stopAnimation(); //just setting animateCallback to null
}
}
else
{
self.updateAngle((self.currValue+incr)/self.maxValue);
setTimeout(self.animateCallback, tick);
}
}
self.animateCallback.call();
},
我們需要看到更多的代碼,知道什麼是錯的。很顯然,有些東西與這個,self或self.animateCallback混淆,因爲如果其中一個沒有被混淆,代碼不應該有你報告的問題。 – jfriend00