【问题标题】:How to make a div's background color randomly change when the page refreshes页面刷新时如何让div的背景颜色随机变化
【发布时间】:2013-04-04 08:02:04
【问题描述】:

这是我在这里的第一个问题,如果我做错了什么,请原谅。 我正在做一个网站的布局,我希望标题在用户刷新页面时随机改变颜色。我已经做了一些研究并得到了这些 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 color 上。

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

<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 的背景颜色?

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

【问题讨论】:

  • 不要只是不使用document.write,同时它太老了。
  • 为什么不直接将标题创建为常规的html,然后通过脚本编辑background-color(通过id 或类查找)?
  • 我认为这行得通。我该怎么做,trajce?对不起,我只是 javascript 的初学者
  • @Gus ,你能试试这个分辨率吗?我找到了它,它看起来与您正在寻找的相似。 Check it out
  • 成功了,我!非常感谢大家的帮助!布局仍然损坏,但我想我现在可以解决这个问题。

标签: javascript html css header background-color


【解决方案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/

【讨论】:

  • 类似于This url。不过不错。
  • 是的,我使用了Mee发送的链接,但是这个和那个相似。对于任何好奇的人,这是我正在使用的:pastebin.com/w2Mb9ivC。但是非常感谢您的帮助!
【解决方案2】:
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);
}

【讨论】:

    【解决方案3】:

    虽然帖子有点旧,但我的回答可能会帮助像我一样登陆这里的其他人! DEMO 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);
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-08
      • 1970-01-01
      • 2021-10-31
      • 2020-08-23
      • 2018-11-25
      • 2018-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多