我正在努力让5个div永远循环进出。 div将有类“text1”“text2”“text3”等。这段代码有什么问题吗?它似乎不起作用。
$(document).ready(function(){
var num = 1
while(num =< 5) {
$('.text' + num).fadeIn().delay(4000).fadeOut()
var num = num ++i
if(num == 5) {
var num = 1
}
else{
var num = num
}
}
});
答案 0 :(得分:2)
那将无限循环。 .delay
不会暂停执行,它只是设置一个稍后调用的函数。您的代码将fadeOut
设置为4秒后无限次调用。
您想要setInterval
代替:
<div class="textContainer">
<div>Text 1</div>
<div>Text 2</div>
<div>Text 3</div>
<div>Text 4</div>
<div>Text 5</div>
</div>
$(document).ready(function() {
var i = 0;
var divs = $('.textContainer div');
setInterval(function() {
divs.eq(i).fadeOut();
i = (i + 1) % divs.length;
divs.eq(i).fadeIn();
}, 4000);
});
答案 1 :(得分:2)
利用fadeOut
方法中的回调函数:
$(document).ready(function() {
function fader(i) {
$('div.text' + i).fadeIn('slow')
.delay(4000).fadeOut('slow', function() {
fader(i % 5 + 1);
});
}
fader(1);
});