var Email=["name@google.com","name@yahoo.com","name@gmail.com"];
function winner(){
for(var i=0;i<Email.length;i++){
Email[i]+=i;
$("#winner").text(Email[i]).fadeIn(2000).fadeOut(3000).delay();
}
}
setInterval(winner,1000);
答案 0 :(得分:1)
这有几个问题:
1)Email[i]+=i;
将i
的值附加到电子邮件地址,因此它会输出大量整数
2)在每次执行该函数时,您都会遍历所有电子邮件,但是由于淡入淡出时间与间隔时间的关系,您看不到所有这些都发生了 - 每个淡入淡出的函数重新运行5次进/出顺序。
这样的事情会更好:
var Email=["name@google.com","name@yahoo.com","name@gmail.com"];
var i = 0; //set a counter
function winner() {
$("#winner").text(Email[i]).fadeIn(2000).fadeOut(3000);
i++; //increment the counter
if (i >= Email.length) { i = 0; } //reset the counter
}
winner(); //initial display at load
setInterval(winner,5000); //run every 5 seconds subsequently, to match the fade timing
看到它在这个小提琴中工作:https://jsfiddle.net/5f0o4zxx/3/
答案 1 :(得分:0)
var Email=["name@google.com","name@yahoo.com","name@gmail.com"];
i=0; //init
$("#winner").text(Email[0]).fadeIn(2000).fadeOut(3000).delay(1000); //init
setInterval(function(){
i++;
$("#winner").text(Email[i]).fadeIn(2000).fadeOut(3000).delay(1000);
if(i==Email.length-1) { //if you want loop
i=-1; //reset counter
}
},
6000); //every 6 seconds
没有多大意义。此外,你的setInterval每秒调用一次函数,但你有fadeIn / fadeOut一起 - 5秒,所以这也不会正常工作。
你可以这样做:
#winner {
display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="winner">
</div>
System.out.print("\nIs " + target + " in the array? ");
代码已注释,因此您可以看到正在发生的事情。