Javascript 在多个div之间自动淡入/显示

Javascript 在多个div之间自动淡入/显示,javascript,jquery,Javascript,Jquery,我可以在我的网页上加载一个简单的jQuery脚本,它会在三个“box”div之间自动淡出,然后重复?我想它显示一个div 5秒钟,同时隐藏另外两个,然后运行1秒钟的淡入过渡到下一个 三个div当前堆叠在一起 <div class="boxes"> <div class="box1">text1</div> <div class="box2">text2</div> <div class="box3">text3</d

我可以在我的网页上加载一个简单的jQuery脚本,它会在三个“box”div之间自动淡出,然后重复?我想它显示一个div 5秒钟,同时隐藏另外两个,然后运行1秒钟的淡入过渡到下一个

三个div当前堆叠在一起

<div class="boxes">

<div class="box1">text1</div>
<div class="box2">text2</div>
<div class="box3">text3</div>

</div>

文本1
文本2
文本3
易于设置,可以按要求执行操作

下面是一个例子:

易于设置,可以按您的要求执行

下面是一个例子:

你可以试试这个:

$(document).ready(function () {
    var allBoxes = $("div.boxes").children("div");
    transitionBox(null, allBoxes.first());
});

function transitionBox(from, to) {
    function next() {
        var nextTo;
        if (to.is(":last-child")) {
            nextTo = to.closest(".boxes").children("div").first();
        } else {
            nextTo = to.next();
        }
        to.fadeIn(500, function () {
            setTimeout(function () {
                transitionBox(to, nextTo);
            }, 5000);
        });
    }

    if (from) {
        from.fadeOut(500, next);
    } else {
        next();
    }
}
演示:

.boxes { position:relative; height:332px; width:500px; }
.boxes div { position:absolute; left:0; top:0; }
$('.boxes div:gt(0)').hide();
setInterval(function(){
    $('.boxes :first-child').fadeOut().next('div').fadeIn().end().appendTo('.boxes');
}, 3000);
我确信它可以被清理和/或更高效,但我只是把它放在一起让它工作。

你可以试试这个:

$(document).ready(function () {
    var allBoxes = $("div.boxes").children("div");
    transitionBox(null, allBoxes.first());
});

function transitionBox(from, to) {
    function next() {
        var nextTo;
        if (to.is(":last-child")) {
            nextTo = to.closest(".boxes").children("div").first();
        } else {
            nextTo = to.next();
        }
        to.fadeIn(500, function () {
            setTimeout(function () {
                transitionBox(to, nextTo);
            }, 5000);
        });
    }

    if (from) {
        from.fadeOut(500, next);
    } else {
        next();
    }
}
演示:

.boxes { position:relative; height:332px; width:500px; }
.boxes div { position:absolute; left:0; top:0; }
$('.boxes div:gt(0)').hide();
setInterval(function(){
    $('.boxes :first-child').fadeOut().next('div').fadeIn().end().appendTo('.boxes');
}, 3000);

我确信它可以被清理和/或更高效,但我只是把它放在一起让它工作。

这里有一个最简单的解决方案:

CSS:

.boxes { position:relative; height:332px; width:500px; }
.boxes div { position:absolute; left:0; top:0; }
$('.boxes div:gt(0)').hide();
setInterval(function(){
    $('.boxes :first-child').fadeOut().next('div').fadeIn().end().appendTo('.boxes');
}, 3000);
jQuery:

.boxes { position:relative; height:332px; width:500px; }
.boxes div { position:absolute; left:0; top:0; }
$('.boxes div:gt(0)').hide();
setInterval(function(){
    $('.boxes :first-child').fadeOut().next('div').fadeIn().end().appendTo('.boxes');
}, 3000);

以下是最简单的解决方案之一:

CSS:

.boxes { position:relative; height:332px; width:500px; }
.boxes div { position:absolute; left:0; top:0; }
$('.boxes div:gt(0)').hide();
setInterval(function(){
    $('.boxes :first-child').fadeOut().next('div').fadeIn().end().appendTo('.boxes');
}, 3000);
jQuery:

.boxes { position:relative; height:332px; width:500px; }
.boxes div { position:absolute; left:0; top:0; }
$('.boxes div:gt(0)').hide();
setInterval(function(){
    $('.boxes :first-child').fadeOut().next('div').fadeIn().end().appendTo('.boxes');
}, 3000);


文本1
文本2
文本3
jQuery.fn.nextOrFirst=函数(选择器){
var next=此.next(选择器);
return(next.length)?next:this.prevAll(selector.last();
}
$(文档).ready(函数(){
$('div.fade-effect')。淡出(500);
var fadeInTime=1000;
var间隔时间=5000;
//第一个电话
setTimeout(函数(){
fadeMe($('div.fade-effect').first());
},休息时间);
功能fadeMe(div){
div.fadeIn(fadeInTime,function(){
衰减分区(衰减时间);
//递归调用
setTimeout(函数(){
fadeMe(第二分册());
},休息时间);
});
}
});


文本1
文本2
文本3
jQuery.fn.nextOrFirst=函数(选择器){
var next=此.next(选择器);
return(next.length)?next:this.prevAll(selector.last();
}
$(文档).ready(函数(){
$('div.fade-effect')。淡出(500);
var fadeInTime=1000;
var间隔时间=5000;
//第一个电话
setTimeout(函数(){
fadeMe($('div.fade-effect').first());
},休息时间);
功能fadeMe(div){
div.fadeIn(fadeInTime,function(){
衰减分区(衰减时间);
//递归调用
setTimeout(函数(){
fadeMe(第二分册());
},休息时间);
});
}
});

$(文档).ready(函数(){
$(.box2,.box3”).css(“显示”、“无”);
var a=2;
函数递归()
{
$(“.box1、.box2、.box3”).css(“显示”、“无”);
$(“.box”+a).fadeIn(1000);
a=数字(a)+1;
如果(a==4)
a=1;
}
setInterval(函数(){recursive()},5000);
});
文本1
文本2
文本3

$(文档).ready(函数(){
$(.box2,.box3”).css(“显示”、“无”);
var a=2;
函数递归()
{
$(“.box1、.box2、.box3”).css(“显示”、“无”);
$(“.box”+a).fadeIn(1000);
a=数字(a)+1;
如果(a==4)
a=1;
}
setInterval(函数(){recursive()},5000);
});
文本1
文本2
文本3

该键使用
位置
z-index
显示
的样式属性和
设置间隔
功能。该键使用
位置
z-index
的样式属性,
display
和一个
setInterval
函数。我认为该插件在目标div中查找
img
标记并循环它。我不认为OP能够修改它以满足他/她的需要。它不仅仅是循环图像,如引言中所述:
容器的每个子元素都成为一个“幻灯片”。
请参见我的示例。哦,好的。没有关系。我以前经常使用它,在那些日子里它就像我在评论中提到的那样工作。我认为该插件在目标div中查找
img
标记并循环它。我不认为OP能够修改它以满足他/她的需要。它不仅仅是循环图像,如引言中所述:
容器的每个子元素都成为一个“幻灯片”。
请参见我的示例。哦,好的。没有关系。我以前经常使用它,在那些日子里,它就像我在评论中提到的那样工作。当我尝试这一次时,它最初显示框1,但5秒钟后,所有内容都消失了,第二个和第三个框都没有出现。空白。当我尝试这一个时,它最初显示框1,但5秒钟后,所有内容都消失了,第二个和第三个框都没有出现。只是空白。这几乎是完美的!:)但是,第一次转换似乎要等待15秒,之后每次转换都要等待5秒。我想知道是什么让它在开始时多出10秒。嗯。@copyflake谢谢!嗯,我没看到这种情况发生。你在小提琴上看到了吗?对我来说,它在第一次中会立即消失,然后5秒后在下一次中消失,5秒后在下一次中消失,然后5秒后重新开始。你是对的。这一定是我这边的事,JSFIDLE工作得很好!我会玩它:)非常感谢。@copyflake哈哈,好吧,如果你需要更多的帮助,请告诉我。不过没问题:)这几乎是完美的!:)但是,第一次转换似乎要等待15秒,之后每次转换都要等待5秒。我想知道是什么让它在开始时多出10秒。嗯。@copyflake谢谢!嗯,我没看到这种情况发生。你在小提琴上看到了吗?对我来说,它会在第一个瞬间消失,然后5秒后在下一个瞬间消失,5秒后在下一个瞬间消失