Javascript 在一个无休止的循环中,一段又一段地改变文本
我有一段时间后想要更改的文本。我有以下工作:Javascript 在一个无休止的循环中,一段又一段地改变文本,javascript,jquery,Javascript,Jquery,我有一段时间后想要更改的文本。我有以下工作: function nextMsg() { if (messages.length == 0) { } else { $('#message').html(messages.pop()).fadeIn(500).delay(1000).fadeOut(500, nextMsg); } }; var messages = [ "sleep", "eat", "drink", "r
function nextMsg() {
if (messages.length == 0) {
} else {
$('#message').html(messages.pop()).fadeIn(500).delay(1000).fadeOut(500, nextMsg);
}
};
var messages = [
"sleep",
"eat",
"drink",
"read",
].reverse();
$('#message').hide();
nextMsg();
见
我的问题:
我想不断重复这些信息。换句话说,当显示最后一条消息时,从第一条消息开始再次开始循环,创建一个无休止的循环。代码中需要更改/添加哪些内容?使用
计数器和%
var计数器=0;
函数nextsg(){
$('#message').html(messages[counter%messages.length]).fadeIn(500).delay(1000).fadeOut(500,nextsg);
++计数器;
};
变量消息=[
“睡眠”,
“吃”,
“喝”,
“读”,
];
$(“#消息”).hide();
nextsg()代码>
要做的事情:
类似于maybe的东西
JS
var i=0;
function nextMsg() {
$('#message').html(messages[i]).fadeIn(500).delay(1000).fadeOut(500, nextMsg);
i = (++i)%messages.length;
};
var messages = [
"sleep",
"eat",
"drink",
"read",
].reverse();
$('#message').hide();
nextMsg();
我希望这对你有用
var fadeLoop=函数($el){
$el.fadeOut(1000,函数(){
var$next=$el.next();
如果($next.length==0){
$next=$el.兄弟姐妹(“:first”);
}
$next.fadeIn(1000,函数(){
法德洛普(下一个);
});
});
};
$(文档).ready(函数(){
$(“#elm1”).sibbins().hide();
fadeLoop($(“#elm1”);
});代码>
要做的事情:
睡觉
吃
喝
阅读
也许可以使用messages[(i++)%n]代替messages.pop()。messages.pop()
正在删除数组元素,而是使用一个索引,该索引按照LiranBo的建议递增。在这个答案中,您不需要.reverse()
。提问者只使用了reverse
,因为在他的原始代码中,他每次都使用messages.pop()
来获取最后一个元素。谢谢,这非常有效!!!就像下面Manoj Kumar的回答一样,因为它可以轻松地改变你想要的任何东西,比如信息、颜色、图像等,因为它还有一个额外的优势,可以改变你想要的任何东西,而不仅仅是信息。虽然我理解我的问题是指信息,但我意识到。但这是一个额外的优势,你不觉得吗?谢谢你的帮助,人造丝。我实际上正在使用你的解决方案,但是如果我还想更改其他内容,我可以使用其他解决方案。谢谢!!Take away.reverse()将从“sleep”运行到“read”。