如何设置间隔以便轮流显示图像

时间:2013-11-11 19:35:42

标签: javascript jquery settimeout setinterval

所以...我从数组中得到一个图像,设置时间间隔的问题,以便轮流显示图像

$(function() {
    var length = $('.fadein img').length; //get the number of images
    var arrayimage = [];
    for (i=0; i<length; i++){ // fill the array
        arrayimage.push($(".fadein img:eq("+ i +")").attr("src"));  
    }
    var lengtharray = arrayimage.length;
    setTimeout(function run() { 
        for (i=0; i<lengtharray; i++){ //get images by turn
            var cft = arrayimage[i];               
            var imageurl = cft;
            $("html").css({
                'background': '#000000 url("' +imageurl + '") no-repeat top left fixed',
                'background-size' : 'cover', 
                'width':'100%',
                'height':'100%',
                'position':'avsolute'
            });  
           setTimeout(cft, 5000);
            alert("set");
        }
        },5000);

});

如何设置间隔? 如有必要,这是HTML代码:)

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link href="style.css" rel="stylesheet" type="text/css">
        <script src="js/jquery/jquery2.0.3.js"></script>        
        <script src="js/jquery/slideshow.js"></script>
    </head>
    <body>
        <div class="fadein">
            <img src="images/backgrounds/stones.jpg"/>
            <img src="images/backgrounds/pier.jpg"/>
            <img src="images/backgrounds/sea-mist.jpg"/>
            <img src="images/backgrounds/mojave.jpg"/>
            <img src="images/backgrounds/flowing-rock.jpg"/>
        </div> 
    </body>
    </html>

2 个答案:

答案 0 :(得分:0)

听起来好像是setInterval(function, milliseconds),而不是setTimeout

答案 1 :(得分:0)

你有

setTimeout(cft, 5000);

'cft'是一个字符串。你应该传递一个函数setTimeout。您必须根据重复使用的可重用函数来考虑setTimeout。您在第一个外部setTimeout中执行该函数,然后该函数在后续的setTimeouts内部调用它自己。如果你希望它立即开始,第一个电话将直接发送到你的函数而不是setTimeout。

您使用的幻灯片插件是什么?你可以在它的文档中找到你想要的一些答案。

这是我正在思考的一个例子:

$(function() {

    //set up
    $('.fadein img').hide().eq(0).addClass('nextup');

    rotate = function(){
        var imageurl = $('.fadein img.nextup').attr('src')
        //next
        $('.fadein img.nextup').removeClass('nextup').next('img').addClass('nextup');
        if($('.fadein img.nextup').length == 0){
            //back to first
            $('.fadein img').hide().eq(0).addClass('nextup');
        }
        $("html").css({
            'background': '#000000 url("' +imageurl + '") no-repeat top left fixed',
            'background-size' : 'cover',
            'width':'100%',
            'height':'100%',
            'position':'absolute'
        });
        setTimeout(rotate, 5000);
    };
    rotate();
});