2012-11-29 94 views
0

我期待每次重新加載窗口時都更改爲div類的背景顏色。
我用這個代碼來改變身體的背景顏色上刷新:
更改div的背景顏色在重新加載

<script type="text/javascript"> 
<!-- //Enter list of bgcolors: 
var bgcolorlist=new Array("silver", "#BAF3C3", "#c3baf3") 

document.body.style.background=bgcolorlist[Math.floor(Math.random()*bgcolorlist.length)] 
// --> 
</script> 

但我希望改變,因此與類「三每格的「三」的背景顏色'在每次重新加載窗口時都會有不同的背景色(從一組顏色中進行選擇)。
似乎無法弄清楚如何做到這一點,是否有可能?

+0

像你一樣,請不要使用數組構造函數:,而不是寫'新的Array()',使用的文字符號:'[]'。短得多,更可預測。對象也一樣:使用'{}'而不是'new Object' –

回答

1

使用此

var bgcolorlist=new Array("silver", "#BAF3C3", "#c3baf3") 

$(".three").css("background-color",bgcolorlist[Math.floor(Math.random()*bgcolorlist.length)]); 
0

使用jQuery你可以做

$(document).ready(function(){ 
    $('.three').css('background-color',bgcolorlist[Math.floor(Math.random()*bgcolorlist.length)); 
}); 
0
var bgcolorlist = ['silver', '#BAF3C3', '#C3BAF3']; 

$(function() { 
    $('.three').css({ 
     background: bgcolorlist[Math.floor(Math.random()*bgcolorlist.length)] 
    }); 
}); 

每次頁面加載,這個挑選從列表中隨機顏色,並將其對人體的CSS。

0

通過使用純JS:

window.onload = function(){ 
    var arr = document.querySelectorAll(".three"); 
    for(var i=0;i<arr.length;i++){ 
     arr[i].style.background = bgcolorlist[Math.floor(Math.random()*bgcolorlist.length)] 
    } 
} 

這將給與三級隨機顏色的所有div。如果您希望所有要一樣,只是緩存的Math.random給一個變量

1

如果BG-顏色改變,你可以使用localStorage檢查BG爲被重新加載之前,頁面的內容:

var colours = ['#F00','#0F0'];//my eyes! 
var currentColour = +(localStorage.previousBGColour || -1)+1; 
currentColour = currentColour >= colours.length ? 0 : currentColour;//if index is not set reset to colour at index 0 
document.getElementById('theDiv').style.backgroundColor = colours[currentColour]; 
localStorage.previousBGColour = currentColour;//store colour that's currently in use 

注意,並不是所有的瀏覽器都支持localStorage:有些人還在使用舊,照出IE8,例如。

的jQuery

$(document).ready(function() 
{ 
    (function() 
    {//this IIFE is optional, but is just a lot tidier (no vars cluttering the rest of the script) 
     var colours = ['#F00','#0F0'], 
     currentColour = +(localStorage.previousBGColour || -1) + 1; 
     $('#theDiv').css({backgroundColor:colours[currentColour]}); 
     localStorage.previousBGColour = currentColour; 
    }()); 
}