循环中的随机数 jquery

Random Number in a loop jquery

我会为每个循环使用另一个随机数,但它不需要工作... 不知道为什么。

 $(document).ready(function(){

        setTimeout("execute()",5000);

    })

    function execute(){
        for(i=0;i<=5;i++){
            var zWindow = $(window).height();
            var yWindow = $(window).width();
            var z=Math.floor((Math.random() * zWindow) + 1);
            var y=Math.floor((Math.random() * yWindow) + 1);
            $("#egg").css({
                "top": z,
                "left": y
            });
            $("#egg").delay(1000).fadeIn(10).delay(3000).fadeOut(100);
        }

    }

您需要 setInterval 但不需要 setTimeout 只会执行一次:

// and use execute directly instead of "execute()"
setInterval(execute, 5000);

要停止间隔,请使用 clearInterval()- 函数:

$(document).ready(function(){

    var timesRun = 0; 
    var interval = setInterval(execute, 5000); //only use functionname here

    function execute(){

        timesRun += 1;
        var zWindow = $(window).height();
        var yWindow = $(window).width();

        var z = Math.floor((Math.random() * zWindow) + 1);
        var y = Math.floor((Math.random() * yWindow) + 1);

        $("#egg").css({
            "top": z,
            "left": y
        });
        $("#egg").delay(1000).fadeIn(10).delay(3000).fadeOut(100);

        if(timesRun === 5){
            clearInterval(interval);
        }

     }
});

Demo

参考

JS Timing