我写了一个java脚本代码:
<html>
<head>
<style type="text/css">
#myDiv {
height: 150px;
width: 150px;
background-color: red;
}
</style>
</head>
<body>
<div id="myDiv"></div>
<script type="text/javascript">
function setColor(){
var x = '0123456789ABCDEF';
var y='#';
var i;
for(i=0; i<6; i++){
y = y+x[Math.round(Math.random()*15)];
}
document.getElementById("myDiv").style.backgroundColor=y;
}
var myVar = setInterval(function(){setColor()}, 1000);
</script>
</body>
</html>
它会在1秒后改变每个盒子的颜色,但我想在随机秒后改变颜色。在1秒之后第一次说,然后在0.5秒之后说,之后5秒钟。等等。我不想刷新页面来执行此操作。请帮忙!
答案 0 :(得分:3)
这个功能可以帮到你:
function doSomething() {}
(function loop() {
var rand = Math.round(Math.random() * (3000 - 500)) + 500;
setTimeout(function() {
//alert('A');
doSomething();
loop();
}, rand);
}());
doSomething()
随机间隔:)
here's the Demo - 只需从警报中删除“//”即可查看其中的操作! :)
此JsFiddle使用您的函数更改div的颜色:)
修改
第一行:(获得兰特)
// Returns a random number between min (inclusive) and max (exclusive)
function getRandomArbitrary(min, max) {
return Math.random() * (max - min) + min;
}
// and so you will get a random number between the max and min values
第二行(setTimeout)
setTimeout(function() {
//call this function
循环();
loop(); // this is using a recursive method function and so the whole method is called again/ over and over
答案 1 :(得分:0)
首先,你不能只是在javascript中访问像数组一样的字符串字符,而是使用.charAt()
方法。
var hex = x.charAt(Math.round(Math.random()*15)),
color = '#' + hex + hex + hex;
document.getElementById("myDiv").style.backgroundColor=color;