3

这是我在这里的第一个问题,如果我做错了什么,请原谅。我正在做一个网站的布局,我希望标题在用户刷新页面时随机改变颜色。我已经做了一些研究并得到了这些 javascript 代码:

<script type="text/javascript">     
        var randnum = Math.random();
        var inum = 2;
        var rand1 = Math.round(randnum * (inum-1)) + 1;
        var colors = new Array;
        colors[1] = "#385c78";
        colors[2] ="#9d302f";
        var color = colors[rand1]
        document.getElementById('navbar').style.backgroundColor = image;    
    </script>

这个在 head 标签里面。它在我想要的两个代码之间选择一个随机的十六进制代码并将其存储在 var 颜色上。

我正在使用的第二个在身体上。

<script type="text/javascript">
        //writes "<div id="header" style="background-color:#something">"
        document.write('<div id="header" style="background-color:' + color + '">')
    </script>
        <!-- continuation of div id="navbar" -->
                    *Header code here*
    </div>

问题是这种做法给我带来了一些麻烦,因为 div id="header" 是在 javascript 中编写的。我无法正确包装其他 div,谷歌浏览器的检查元素告诉我正文大小为 1333px x 80px(可以在此处看到http://puu.sh/2yjKi),准确且只有标题大小,它不包装网站内容的其余部分。所以我的问题是:有没有办法改进该代码?通过 javascript 或类似的方法更改该 div 的背景颜色?

我提前感谢大家阅读并感谢您的帮助。

4

3 回答 3

4

虽然帖子有点旧,但我的回答可能会帮助像我一样登陆这里的其他人! 演示 HTML:

<div style="height:150px">
  <div>
    <h1><center>That's how i change color!!</center></h1>
  </div>
  <br><br>
  <div  class="bordered" id="fancy">
    <center>I behave like a chameleon!!</center>
  </div>
</div>

JS:

setInterval(function () { 
  document.getElementById("fancy").style.background= '#'+Math.floor(Math.random()*16777215).toString(16);
  document.body.style.background= '#'+Math.floor(Math.random()*16777215).toString(16);  
}, 1000);

希望这会对某人有所帮助!

于 2015-10-07T18:58:42.000 回答
1

将您的标头作为普通 HTML 输出,然后使用 JavaScript 更新 onDomReady 的颜色。像这样的东西:

$(document).ready(function() {
    var colors = ["#385c78", "#9d302f"],
    selectedColor = colors[Math.floor(Math.random()*colors.length)]
    header = $("div#header");

    header.css("background-color", selectedColor);
});

http://jsfiddle.net/ryanbrill/GD3qB/

于 2013-04-11T23:19:30.533 回答
0
function changecolor() {
    var colors = ["#B40404", "#0000FF", "#FE2E9A", "#FF0080", "#2EFE2E", ];
    var rand = Math.floor(Math.random() * colors.length);
    $('#controls-wrapper').css("background-color", colors[rand]);
    setTimeout('changecolor()', 1000);
}
于 2014-09-25T10:46:30.430 回答