0

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

$(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>
4

2 回答 2

0

这听起来像,而不是setTimeout,你想要setInterval(function, milliseconds)

于 2013-11-11T19:59:35.870 回答
0

你有

setTimeout(cft, 5000);

'cft' 是一个字符串。您应该传递 setTimeout 一个函数。您必须根据重复的可重用函数来考虑 setTimeout。您在第一个外部 setTimeout 中执行该函数,然后该函数在随后的 setTimeout 内部调用自身。如果您希望它立即启动,第一次调用将直接调用您的函数,而不是在 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();
});
于 2013-11-11T20:00:26.753 回答