setInterval 只运行一次

setInterval just runs once

本文关键字:一次 运行 setInterval      更新时间:2023-09-26

#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)
});

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

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

setInterval500ms运行一次,但是您每次都在相同的图像中淡入淡出。您需要在setInterval函数中获取一个随机数。试试这个:

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

您希望如何显示已显示的图像? 在淡入随机图像之前,必须.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);
    });