2011-04-06 80 views
0

基本上,我要走的是一個計時器,每隔半秒計數一次,並且它應該更新度數,div應該旋轉到新的程度。這應該(理論上)的最終結果是一個有點平穩不斷旋轉的div。試圖旋轉div元素與jQuery控制css3變換命令

不幸的是,它旋轉了1度,然後程度不再更新,即使根據控制檯日誌,數字仍然在計數。

有什麼建議嗎?

setInterval(function() 
    { 
     var i = 0; 
      i++; 

     $('#nav').css({'-webkit-transform' : 'rotate(' + i + 'deg)'}); 

     console.log(i); 
    } 
    , 1000); 

謝謝!

回答

7

每次調用該函數要設置變量i回零:

var i = 0; 

...然後加入一個。

i++; 

所以它總是「1」。您需要將該值存儲在其他位置,或者每次從css屬性解析該值,然後添加一個值。這裏是前一種方案爲例:

var rotate_degrees = 0; 

setInterval(function() 
{ 
    rotate_degrees++; 
    $('#nav').css({'-webkit-transform' : 'rotate(' + rotate_degrees + 'deg)'}); 
    console.log(rotate_degrees); 
} 
, 1000); 

是什麼讓差異聲明varialbe 功能的範圍內作爲反對。

+0

當然! 我多麼傻,沒有意識到這一點! 謝謝! – mattelliottIT 2011-04-06 02:22:44

1

變量i是局部的功能,因此它永遠是1.將名稱更改爲類似rotationCount和全球宣佈其

而且(例如所有功能外),你會想要做MODULA 360算術。