尝试使用jQuery控制css3转换命令旋转div元素

时间:2011-04-06 01:58:49

标签: jquery css3 transform rotation

基本上,我得到的是一个计时器,每半秒计算一次,并且应该更新程度,div应该旋转到新的程度。最终的结果应该(理论上)是一个有点平滑的不断旋转的div。

可悲的是,它旋转1度,然后程度不会再次更新,即使根据控制台日志,数字仍在计算中。

有什么建议吗?

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

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

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

谢谢!

2 个答案:

答案 0 :(得分: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);

区别在于将变量声明为函数的范围而不是内部。

答案 1 :(得分:1)

变量i是函数的本地变量,因此它始终为1.将名称更改为rotationCount并将其全局声明(例如,在所有函数之外)

此外,您还需要进行modula 360算法。