我知道已经有很多关于jquery动画的问题,但我还没有找到任何适合我的。
我见过很多例子,人们使用。animate调用一个函数作为"完整"参数传入,但没有一个也有一个步骤函数。我知道这应该无关紧要,但我相信这是使我的情况不同的地方。
var animateWelcome = function(targetElement,speed){
$('#animatewelcome').animate(
{
r:360
},
{
duration:speed,
step:function(now,fx)
{
if(fx.prop == 'r') r = now;
$('#animatewelcome').css('transform','rotateY('+r+'deg)');
},
complete:function()
{
alert('done');
r = 0;
$('#animatewelcome').css('transform','');
animateWelcome(this,speed);
}
}
);
}
它将只旋转第一次。"完成"警告不会出现。希望这是一个愚蠢的语法错误。有人知道吗?
结果如下:警报被解除了。正在输入完整的函数。
要使元素保持旋转,需要做的是删除元素并读取元素:
var newp = document.createElement('p');
newp.innerHTML = "text";
newp.id = 'animatewelcome';
$('#animatewelcome').remove();
document.getElementById('animatewrapper').appendChild(newp);
animateWelcome($('#animatewelcome'),7500);
我猜只有在元素旋转时才需要这样做,更简单的动画不需要这个"技巧"