0

所以是的,我不太擅长让这个页面做到这一点。我的目标是让背景应用随机颜色。所以我将一些颜色放入一个数组中,并决定从中选择一个随机的颜色。这是我的尝试,但并没有影响。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>   
<body>   
<script>    
var r = Math.floor((Math.random()*4)+1);
var colors=["red", "blue", "green", "yellow", "pink"];
bodyObject.bgColor=colors[r].toString(); 
</script>
</body>
</html>
4

3 回答 3

3

尝试这个...

<script>    
window.onload = function(){
var r = Math.floor((Math.random()*4)+1);
var colors=["red", "blue", "green", "yellow", "pink"];
document.body.style.backgroundColor =colors[r]; 
}
</script>
于 2013-07-02T09:42:04.913 回答
0

如果要将 bodyObject 用作​​变量,则需要首先在代码中定义它:

var r          = Math.floor((Math.random()*4)+1),
    colors     = ["red", "blue", "green", "yellow", "pink"],
    bodyObject = document.getElementsByTagName("body")[0];

bodyObject.bgColor=colors[r]; // @Matanya to string not required http://stackoverflow.com/questions/17422215/getting-background-to-randomize-on-load#comment25303047_17422278 
于 2013-07-02T09:47:55.677 回答
0

我会使用这个代码,因为它对更改最有弹性;

var colors=["red", "blue", "green", "yellow", "pink"];
var r = Math.floor((Math.random()*colors.length-1)+1);
document.getElementsByTagName("body")[0].bgColor=colors[r]; 

请注意,我最初建议您为您的身体标签提供一个 id “bodyObject”,这实际上是修复您编写的代码的最简单方法,并且是您的错误的原因,但该建议没有得到很好的接受。

但是请注意,我还重新排序了几行,允许您使用对数组中的项目数更健壮的 length 属性。

您还可以从 RGB 比例生成颜色,但我不确定您要获得什么效果。

于 2013-07-02T10:15:13.293 回答