[英]How to create loops in jQuery
我需要循环显示2个div
元素,一个接一个。
HTML文字其他文字
jQuery的
$('#1').animate({opacity:0},500)
.animate({opacity:1},500)
.delay(2000)
.animate({opacity:0},500);
两者之间应该去哪里? 因此,首先我们为#1运行动画,然后才为#1 DIV启动动画
$('#2').animate({opacity:0},500)
.animate({opacity:1},500)
.delay(2000)
.animate({opacity:0},500);
以及如何使无限循环呢?
您可以使用animate()
的回调。 动画结束时将运行回调。
$('#one').animate({}, 'fast', function(){
//Callback
$('#two').animate({ });
});
对于无限循环,您可以将每个div的动画放在自己的函数中,然后从另一个动画结尾的完整回调中调用该函数。 (比说明容易显示:)
function do1() {
$('#1').animate({opacity:0},500)
.animate({opacity:1},500)
.delay(2000)
.animate({opacity:0},500,function() {
do2();
});
}
function do2() {
$('#2').animate({opacity:0},500)
.animate({opacity:1},500)
.delay(2000)
.animate({opacity:0},500,function() {
do1();
});
}
do1();
演示: http : //jsfiddle.net/nnnnnn/HQ5ys/1
或者只是将代码放在一个可以自我调用的函数中:
function myAnimate() {
$('#1').animate({opacity:0},500)
.animate({opacity:1},500)
.delay(2000)
.animate({opacity:0},500,function() {
$('#2').animate({opacity:0},500)
.animate({opacity:1},500)
.delay(2000)
.animate({opacity:0},500,function() {
myAnimate();
});
}
myAnimate();
您可以为此使用jQuery的when-then函数。
$.when(
function(){
$('#1').animate({opacity:0},500)
.animate({opacity:1},500)
.delay(2000)
.animate({opacity:0},500);})
.then(function(){
$('#2').animate({opacity:0},500)
.animate({opacity:1},500)
.delay(2000)
.animate({opacity:0},500);
});
使用完整的回调函数,例如:
setInterval(function () {
$("#1").animate({opacity:0}, 500, function() {
$("#2").animate({opacity:0},500);
}), 5000); //runs every 5 secs
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.