我有以下代码:
$(function(){
setTimeout(function(){
$('.testimonial1').css("display", "none");
$('.testimonial2').css("display","block");
} ,3000);
setTimeout(function(){
$('.testimonial2').css('display', 'none');
$('.testimonial3').css('display', 'block');
}, 6000);
});
问题是它只运行一次。我希望在第二次超时后,它会循环回到第一次超时,依此类推。
如有任何澄清,请提出建议。
答案 0 :(得分:2)
试试这个:
$(function() {
function func1() {
setTimeout(function(){
$('.testimonial1').css("display", "none");
$('.testimonial2').css("display","block");
func2();
} ,3000);
}
function func2() {
setTimeout(function(){
$('.testimonial2').css('display', 'none');
$('.testimonial3').css('display', 'block');
func1();
}, 6000);
}
func1();
});
答案 1 :(得分:1)
您可以在JQuery中使用setInterval
函数。
以下是一个工作示例:JSFiddle setInterval
编辑1: 使用fadeIn / fadeOut效果更新了JSFiddle链接,并添加了以下代码:
的Javascript
var refreshId = setInterval(function () {
setTimeout(function () {
$('#t1').fadeOut("slow", function () {
$('.testimonial1').css("display", "none");
});
$('#t2').fadeIn("slow", function () {
$('.testimonial2').css("display", "block");
});
}, 3000);
setTimeout(function () {
$('#t2').fadeOut("slow", function () {
$('.testimonial2').css("display", "none");
});
$('#t3').fadeIn("slow", function () {
$('.testimonial3').css("display", "block");
});
}, 6000);
}, 6000);
HTML
<div id="t1" class="testimonial1">Testimonial 1</div>
<div id="t2" class="testimonial2">Testimonial 2</div>
<div id="t3" class="testimonial3">Testimonial 3</div>
CSS
.testimonial1 {
display : block;
}
.testimonial2 {
display : block;
}
.testimonial3 {
display : block;
}
答案 2 :(得分:0)
您可以尝试使用setInterval
function play() {
setTimeout(function(){
$('.testimonial1').css("display", "none");
$('.testimonial2').css("display","block");
} ,3000);
setTimeout(function(){
$('.testimonial2').css('display', 'none');
$('.testimonial3').css('display', 'block');
}, 6000);
}
setInterval( play , 6000);