Jquery滑下滑块

时间:2015-06-15 08:03:04

标签: javascript jquery

我正在尝试创建一个滑块。 这里我们有3个div,有3种不同的背景颜色。 在下面的代码中,3 div一个接一个地向下滑动,然后向上滑动并永远运行。 住在这里:http://jsfiddle.net/kraditya/egs1br26/3/ 但我希望只有3个div一个接一个地永久地滑下来。这怎么可能? 请帮忙。提前谢谢。

    <html>
    <head>
        <title>Slider</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script src="../jquery/jquery.min.js"></script>
        <style>
            .container{
                width: 500px;
                height: 250px;  
                margin: 0 auto; 
            }
            .slider1{
                width: 500px;
                height: 250px;  
                margin: 0 auto;
                //background-image: url(images/image-1.jpg);
                background-color:yellow;
                position: absolute;
                z-index: 1;
            }
            .slider2{
                width: 500px;
                height: 250px;  
                margin: 0 auto;                
                //background-image: url(images/image-2.jpg);
                background-color:green;
                position: absolute;
                z-index: 2;
            }
            .slider3{
                width: 500px;
                height: 250px;  
                margin: 0 auto;
                //background-image: url(images/image-3.jpg);
                background-color:blue;
                position: absolute;
                z-index: 3;
            }

        </style>
        <script type="text/javascript">

            $(document).ready(function () {

                var runForever = function () {
                    //$(".slider1").hide();
                    $(".slider2").hide(); //at start slider2 remains hidden;
                    $(".slider3").hide(); //at start slider3 remains hidden;


                    $(".slider2").slideDown(2000, function () {
                        $(".slider3").slideDown(2000, function () {
                            $(".slider3").slideUp(2000, function () {
                                $(".slider2").slideUp(2000, runForever);
                            });
                        });
                    });
                };
                runForever();
            });

        </script>
    </head>
    <body>
        <div class="container">
            <div class="slider1"></div>
            <div class="slider2"></div>
            <div class="slider3"></div>
        </div>

    </body>
</html>

2 个答案:

答案 0 :(得分:2)

http://jsfiddle.net/egs1br26/5/

$(document).ready(function () {

    var runForever = function () {
        $(".slider1").hide();

        $(".slider2").hide(); //at start slider2 remains hidden;
        $(".slider3").hide(); //at start slider3 remains hidden;


        $(".slider1").slideDown(2000, function () {
            $(".slider2").slideDown(2000, function () {
                $(".slider3").slideDown(2000,function(){
                  runForever();
                });

            });
        });
    };
   runForever();
});

您还可以像上一张幻灯片一样添加容器的背景。所以它看起来像是一个连续滑落。

.container {
    width: 500px;
    height: 250px;
    margin: 0 auto;
    background-color:blue;
} 

使用z-index可以实现更现实的解决方案。通过这种方法,可以去除容器的背景颜色。

Updated Fiddle

var _img=$("#slideshow  div"), zIndex=99;
$(_img).eq(0).show();
function loopIt(){
    $(_img).eq(1).css('z-index',zIndex+1).slideDown(1000,function(){
            zIndex=zIndex+2;
            $(_img).eq(0).hide();        
                $(_img).eq(2).css('z-index',zIndex).slideDown(1000,function(){
                    zIndex=zIndex+3;
                    $(_img).eq(1).hide();            
                        $(_img).eq(0).css('z-index',zIndex).slideDown(1000,function(){
                            $(_img).eq(2).hide(); 
                            loopIt();        
                        });           

                });
    })
}
loopIt();

答案 1 :(得分:0)

试试这个

示例:http://jsfiddle.net/kevalbhatt18/qu3m3k7f/

$(document).ready(function () {

    var runForever = function () {
        $(".slider1").hide();

        $(".slider2").hide(); //at start slider2 remains hidden;
        $(".slider3").hide(); //at start slider3 remains hidden;


        $(".slider1").slideDown(2000, function () {
            $(".slider2").slideDown(2000, function () {
                $(".slider3").slideDown(2000,function(){
                  runForever();
                });

            });
        });
    };
   runForever();
});