我一直在尝试制作一个脚本来更改跨度的文本。
不可否认,我对jQuery并不是很了解并找到了一个脚本。我编辑了我,但我不能让脚本循环,我不知道从哪里开始。任何代码提示或相关文档的链接将不胜感激。
到目前为止,这是jQuery:
function change() {
$('#msg').html(options.pop()).fadeIn(750).delay(2000).fadeOut(750, change);
};
var options = [
"Red Bull",
"Smoke",
"Babes",
"css",
"batman"
].reverse();
change();
在jsfiddle:http://jsfiddle.net/5s8y3/214/
答案 0 :(得分:5)
停止弹出数组并使用迭代器
var messages = [
"Red Bull",
"Smoke",
"Babes",
"css",
"batman"
],
i = 0;
(function change() {
var msg = messages[i>messages.length-1 ? i=0 : i++];
$('#msg').html(msg).fadeIn(750).delay(2000).fadeOut(750, change);
})();
答案 1 :(得分:2)
只需输入一个全局变量:
var i = 0;
现在,将其添加到您的change()
功能:
if(i < messages.length){
i++;
}
else{
i = 0;
}
这部分代码将遍历yout数组,并在它到达结尾时返回到开头。
然后,将messages.pop()
更改为messages[i]
。
这是JSFiddle:http://jsfiddle.net/5s8y3/220/。
答案 2 :(得分:2)
问题是Array.pop
会从数组中删除该元素,因此一旦它已经通过您的消息列表,一旦没有更多的条目,它就会开始抛出错误。要使其连续循环,请将新删除的消息添加到数组的前面:
function change() {
var message = messages.pop();
messages.unshift(messages);
$('#msg').html(message).fadeIn(750).delay(2000).fadeOut(750, change);
};
答案 3 :(得分:1)
pop()将从数组中删除该值。因此,它适用于一个完整的周期。之后该数组为空。因此,它显示空白值。实际上它在循环中工作。
var messages = [
"Red Bull",
"Smoke",
"Babes",
"css",
"batman"
].reverse();
var i = messages.length;
function change() {
i=(i%messages.length);
$('#msg').html(messages[i++]).fadeIn(750).delay(2000).fadeOut(750, change);
};