我需要做的就是一遍又一遍地运行animateAds函数。有人可以帮忙吗?这是我的代码:
function animateAds(n) {
$('#ad_1').fadeIn('slow', function (){
$('#ad_1').delay(100).fadeOut('fast', function (){
$('#ad_2').fadeIn('slow');
});
});
};
$(document).ready(function() {
for (n = 0; n < 10; n++) {
animateAds(n);
}
});
答案 0 :(得分:2)
<!doctype html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script>
var i=0;
function animateAds() {
if(i==9){return;}
$('#ad_2').fadeOut('fast',function(){
$('#ad_1').fadeIn('slow', function (){
$('#ad_1').delay(100).fadeOut('fast', function (){
$('#ad_2').fadeIn('slow', function(){i++;animateAds();});
});
});
});
};
$(document).ready(function() {
animateAds();
});
</script>
</head>
<body>
<img id='ad_1' style='display:none' src='http://sstatic.net/so/img/logo.png'>
<br>
<img id='ad_2' src='http://sstatic.net/so/img/logo.png'>
我不确定这是否理想,但它可以作为一个自包含的页面。这是你想要做的吗?
答案 1 :(得分:1)
setInterval(function(){animateAds()}, 100);
这将每秒调用您的函数10次(每次100毫秒)。我剥离了n参数,因为它没有在你的代码中使用。
问候。
答案 2 :(得分:1)
您的代码显示的限制为10,但您的问题听起来像是希望它永久存在。
这是一个如何永久运行的例子。如果你想要限制,那么它将是回调中if()
语句的简单重写。
$('document').ready(function() {
var elements = ['#ad_1','#ad_2'];
var i = 0;
var limit = elements.length;
function rotateAds() {
$(elements[i]).fadeIn(400);
$(elements[i]).delay(1000).fadeOut(200,function(){
i++;
if(i == limit) i = 0;
rotateAds();
})
}
rotateAds();
});
这看起来与你想要的相近吗?
您可以根据需要向数组添加任意数量的元素,因为它只计算数组的长度。
答案 3 :(得分:0)
也许您需要在for循环中添加'var',除非在其他地方声明了
for( var n = 0 ; ....