我需要在所有动画完成后从元素中完全删除不透明度样式 http://jsfiddle.net/SthJy/1/
我尝试设置css('opacity', '')
和removeAttr('style')
但没有效果,仍然存在inilne风格。
有人可以帮我这个吗?
答案 0 :(得分:2)
delay
不适用于css()
或removeAttr()
,因为它们不可排队。阅读delay()
docs
您需要在最终动画的完整callack中使用css()
或removeAttr()
$("#helpCloud").animate({opacity: 1}, 200)
.delay(2200)
.animate({ opacity: 0 }, 200, function(){
setTimeout(function(){
$(this).removeAttr('style');
}, 300);
});
由于css中元素的默认不透明度为零,因此不确定您希望看到的内容
答案 1 :(得分:2)
通过使用.queue(),你可以继续与动画同步。
$("#helpCloud").animate({ opacity: 1 }, 200)
.delay(2200)
.animate({ opacity: 0 }, 200)
.delay(300)
.queue(function(next) {
$(this).css('opacity', '');
alert('happend only after .delay is over');
next()
})
现场演示:http://jsfiddle.net/SthJy/3/
获得相同结果的另一种方法是在.dalay(300,function(){})上使用回调;
$("#helpCloud").animate({ opacity: 1 }, 200)
.delay(2200)
.animate({ opacity: 0 }, 200)
.delay(300, function() {
$(this).css('opacity', '');
alert('happend only after .delay is over');
});