我设法创建我的第一个隐藏和显示div的函数,但是当我尝试使用2个setTime时,另一个div无限加载,我需要做的是在不同的时间显示div,任何想法?
这是JS我的代码
function showDiv1() {
// If there are hidden divs left
if ($('.forHide:hidden').length) {
// Fade the first of them in
$('.forHide:hidden:first').fadeIn();
if ($('.forHide:hidden').length >= 1) {
$(".forHide").fadeOut(1500, function() {});
}
// And wait one second before fading in the next one
myVar = setTimeout(showDiv1, 100);
}
}
function showDiv2() {
// If there are hidden divs left
if ($('.forSlowMo:hidden').length) {
// Fade the first of them in
$('.forSlowMo:hidden:first').fadeIn();
if ($('.forSlowMo:hidden').length >= 1) {
$(".forSlowMo").fadeOut(1500, function() {});
}
// And wait one second before fading in the next one
setTimeout(showDiv2, 1000);
}
}
答案 0 :(得分:1)
在第一项的NOT EXISTS
之后,如果还有其他隐藏的内容,则代码会将它们全部淡出:
.fadeIn
您需要排除您刚刚展示的那个:
$('.forSlowMo:hidden:first').fadeIn();
if ($('.forSlowMo:hidden').length >= 1) {
// this line selects all, including the one just shown
$(".forSlowMo").fadeOut(1500, function() {});
}
更新了小提琴:https://jsfiddle.net/hd8q1mox/1/
在小提琴中,我删除了.forHide部分,以便您可以看到.slowMo上的差异,因为它们彼此叠加。