我希望背景图片能够淡出。
我有两个div在彼此之上,背景设置为图像。
在我的jQuery中,我定位一个div,然后将不透明度显示为零,显示另一个。然后我反过来。然而,这是有效的,但现在由于某种原因,这个无限循环崩溃了Firefox。
我该怎么做才能让它不崩溃?
$(document).ready(function() {
function change (){
$('#back1').animate({opacity:0}, {duration:3000});
$('#back1').delay(1000);
$('#back1').animate({opacity:1}, {duration:3000});
$('#back1').delay(1000);
change();
}
change();
});
答案 0 :(得分:5)
问题是您在动画完成之前调用change()
,因此您正在创建竞争条件。动画是异步的。动画可以使用完整的回调。
试试这个:
function change (){
$('#back1').animate({opacity:0}, {duration:3000})
.delay(1000)
.animate({opacity:1}, {duration:3000}, function(){
/* use complete callback of final animation to start sequeunce again*/
change();
});
}
答案 1 :(得分:1)
您必须使用函数的回调