setInterval只运行一次

时间:2013-11-02 19:03:37

标签: javascript jquery random fadein setinterval

我在#imacon内有很多图像,我希望所有图像都随机出现,但只显示1张图像。我怎么能这样做?

$(document).ready(function() {
    var leng = $('#imacon').children().length;
    var rm = Math.floor(Math.random()*leng);

    setInterval(function() { 
        $('#imacon img:eq('+rm+')').fadeIn();
    }, 500)
});

3 个答案:

答案 0 :(得分:2)

您需要在每个图像更改之后(或之前)更改随机数。

   $(document).ready(function() {

        var leng = $('#imacon').children().length;

        setInterval(
            function() { 
                var rm = Math.floor(Math.random()*leng);
                $('#imacon img:eq('+rm+')').fadeIn();
            },
        500);

    });

答案 1 :(得分:1)

setInterval每隔500ms运行一次,但每次都会淡化相同的图像。您需要在setInterval函数中获取一个随机数。试试这个:

var leng = $('#imacon').children().length;
setInterval(function() { 
    var rm = Math.floor(Math.random() * leng);
    $('#imacon img:eq(' + rm + ')').fadeIn();
}, 500)

答案 2 :(得分:0)

您如何期望展示已经显示的图像?在淡入随机图像之前,您必须.hide()所有图像。

$(document).ready(function() {

        var leng = $('#imacon').children().length;

        setInterval(
            function() { 
                var rm = Math.floor(Math.random()*leng);
                $('#imacon img').hide();
                $('#imacon img:eq('+rm+')').fadeIn();
            },
        500);

    });