gpt4 book ai didi

javascript - 如何在定义的时间后在一个 div 中淡入和淡出元素?

转载 作者:行者123 更新时间:2023-11-30 17:45:58 25 4
gpt4 key购买 nike

如何在同一个div中一个接一个延迟地显示排队的消息?当前的解决方案很糟糕,因为它会立即显示新的 div。

HTML:

<div id="alert-bar-container"></div>
<button id="show">First message</button>
<button id="next">Next message</button>

JavaScript:

var timeout;
$("#show").click(function () {
alertBar("this appears first");
});
$("#next").click(function () {
alertBar("this should wait and show after first disappeared");
});
function alertBar(msg) {
var message_span = $('<span />').html(msg);
var wrap_bar = $('<div />').addClass('alert_bar');
$('#alert-bar-container').html(wrap_bar.append(message_span).hide());
clearTimeout(wrap_bar.data("timer"));
wrap_bar.clearQueue();
if (wrap_bar.filter(":hidden").length == 1) wrap_bar.fadeIn('fast');
wrap_bar.data("timer", setTimeout(function () {
wrap_bar.fadeOut("slow");
wrap_bar.remove();
}, 2500));
}

示例:http://jsfiddle.net/LsRK8/

最佳答案

尝试:

HTML:

<div id="container">
<div class="msg active">first</div>
<div class="msg">second</div>
<div class="msg">third</div>
<div class="msg">fourth</div>
</div>

JS:

setInterval(function(){
var active = $("#container").find(".active");
var i = $(active).index();
var len = $("#container").find(".msg").length;
var next;
if(i == (len-1)){
next = $("#container").find(".msg:first");
}
else{
next = $("#container").find(".msg:eq("+(i+1)+")");
}
$(active).removeClass("active").hide();
$(next).addClass("active").fadeIn();
},3000);

Fiddle here.

关于javascript - 如何在定义的时间后在一个 div 中淡入和淡出元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20165797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com