我想做最奇怪的事情:使用animate进行值更改,这不是css属性而只是变量。
我需要这个,因为我想在用户点击其边框时旋转元素。所以我需要设置角度值的动画,然后在自定义绘图算法中使用它。
我尝试使用隐藏DIV的css属性来存储它的角度值并为其设置动画,但它无法正常工作。
有人可以帮我吗?
答案 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。