如何随机设置setTimeout时间

时间:2019-06-30 14:50:29

标签: jquery

我写了这个简单的jQuery脚本来弹出我的#popup div,但不是每2个或3个我想要的时间都用Math.random()生成,这是代码,但是不幸的是它不起作用

$(document).ready(function(){
    function pop(){
            $('#popup').show();
            $('#content').addClass('blur');
        };
    setTimeout(pop,el);
    $('#x').click(function(){
        $('#popup').hide();
        $('#content').removeClass('blur');
    });
var el = Math.floor(Math.random() * 5000);
})

2 个答案:

答案 0 :(得分:1)

如您所知,Math.random()将返回一个介于01之间的数字。

JavaScript控制台

>> Math.random()
<- 0.8419219077751203

如果要使用更大的随机数,可以使用乘数。对于毫秒,在1000秒中有1,因此,如果我们想在01000之间随机选择毫秒数,可以将结果乘以{{1 }}。

1000

我们实际上只是在移动小数点。现在,如果我们想要2秒到3秒之间的随机毫秒数,我们可以添加>> Math.random() * 1000 <- 188.6188679027202 进行补偿。现在,它不在20000之间,而是在10002000之间。

3000

现在,您必须确定剩余的小数位数。您可以>> (Math.random() * 1000) + 2000 <- 2494.96714163502 Math.round()

Math.floor()

1毫秒不会对您的计时器造成太大的影响,因此您可以随意使用。

因此,如果您需要2到3秒之间的随机毫秒数,就可以了。如果您需要创建更多随机计时器,请参阅其他发布的答案。这样会在>> Math.round(2494.96714163502) <- 2495 >> Math.floor(2494.96714163502) <- 2494 0之间创建一个范围,其中n不为0且不小于0,并且为底数(n):

b

JavaScript

>> Math.floor((Math.random() * (3000 - 2000)) + 2000)
<- 2556

希望有帮助。

答案 1 :(得分:0)

function randomIntFromInterval(min, max) // min and max included
{
  return Math.floor(Math.random() * (max - min + 1) + min);
}

randomIntFromInterval(3000, 5000);

这是3秒到5秒之间的随机间隔。

如果您希望在2到3秒钟之间完成,请输入:

randomIntFromInterval(2000, 3000);

值(2000,3000)是毫秒。