设置间隔随机+超时
问题描述:
我试图在我的页面上显示“等待”,然后“等待等待”,然后“等待等待”等等,直到〜100次,我想要添加之间的时间的“等待”是随机的,到目前为止,我已经设法显示出等待到100,但我不能添加间隔的随机数。(现在我把10放到它快速结束)。设置间隔随机+超时
我发现在这些科目的答案,但我似乎无法将它们整合到我的代码..
setInterval + Random Number setInterval + Random Number
var timesRun = 0;
var t = "wait";
var interval = setInterval(function(){
timesRun += 1;
if(timesRun === 10){
t = t + "...";
document.getElementById("sample2-progress").innerHTML = t;
clearInterval(interval);
}
document.getElementById("sample2-progress").innerHTML = t;
t = t + " wait";
}, 200);
#preloader {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #000;
z-index: 99999;
height: 100%;
overflow: hidden;
}
#status {
width: 100%;
height: 100%;
position: absolute;
left: 0%;
color: white;
top: 0%;
background-repeat: no-repeat;
background-position: center;
/*margin: -50% 0 0 -50%;*/
text-align: center;
}
#sample2-log{
\t display: none;
}
#sample2-progress{
\t font-size: 6vh;
top: 2vw;
position: fixed;
text-align: center;
width: 98vw;
left: 2vw;
text-align:left;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="preloader">
<div id="status">
<textarea id="sample2-log"></textarea>
<div id="sample2-progress" class="progress"></div>
</div>
</div>
答
在我的理解,因为每次运行需要不同的时间间隔,所以最好使用setTimeout
。
注意:为了演示目的,我保持延迟范围长达10秒。您可以在控制台中检查延迟值。
示例代码
var timesRun = 0;
var t = "wait ";
function initTimeout() {
var delay = Math.floor(Math.random() * 1000000) % 10000;
console.log(delay)
setTimeout(function() {
var str = "...";
if (++timesRun < 10) {
str = t
initTimeout();
}
notify(str);
}, delay);
}
function notify(str) {
document.getElementById("sample2-progress").innerHTML += str;
}
initTimeout();
#preloader {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #000;
z-index: 99999;
height: 100%;
overflow: hidden;
}
#status {
width: 100%;
height: 100%;
position: absolute;
left: 0%;
color: white;
top: 0%;
background-repeat: no-repeat;
background-position: center;
/*margin: -50% 0 0 -50%;*/
text-align: center;
}
#sample2-log {
display: none;
}
#sample2-progress {
font-size: 6vh;
top: 2vw;
position: fixed;
text-align: center;
width: 98vw;
left: 2vw;
text-align: left;
}
<div id="preloader">
<div id="status">
<textarea id="sample2-log"></textarea>
<div id="sample2-progress" class="progress"></div>
</div>
</div>
提供您的代码的工作小提琴? –
有一个,它在工作吗? – Dikeneko