jQuery自定义值的动画(不是CSS属性)

时间:2011-11-16 15:24:52

标签: jquery css variables jquery-animate

我想做最奇怪的事情:使用animate进行值更改,这不是css属性而只是变量。

我需要这个,因为我想在用户点击其边框时旋转元素。所以我需要设置角度值的动画,然后在自定义绘图算法中使用它。

我尝试使用隐藏DIV的css属性来存储它的角度值并为其设置动画,但它无法正常工作。

有人可以帮我吗?

3 个答案:

答案 0 :(得分:61)

在搜索同样的事情时偶然发现了这一点,正确答案似乎是

$({foo:0}).animate({foo:100}, {
    step: function(val) {
        // val takes values from 0 to 100 here
    }
})

http://james.padolsey.com/javascript/fun-with-jquerys-animate/

上找到

答案 1 :(得分:2)

令人讨厌的是,如果没有实际提供一些CSS属性来运行animate函数,它就无法运行(它不会为你提供值)。

您甚至不需要让动画处理您想要更改的实际元素(或变量),因此可以使用@Andrew所描述的step参数来破解它,如下所示:

$('<div/>').css({ height: _your_start_value }).animate({
    height: _your_end_value
}, { 
    step: function (currentValue) {
        //do what you need to with the current value..
    }
});

然而,这是非常低效的,因为它不必要地改变(虽然未附加)元素的高度CSS属性。最好只使用Tween JS这样的“补间”库来做这种事情。

答案 2 :(得分:0)

如果你正在寻找&#34;旋转&#34;您可以do that with css,因此,您可以使用jQuery animate function

相关问题