0

だから私は同じページに同じクラスを持つ多くのdivを持っています。私は自分の選択でそれらのそれぞれに異なる背景を追加したいと思います(5〜6のランダムな背景があります)

インターネットでこのコードを見つけました。ただし、すべての div に対して同じランダムな色が選択されます。

 <script type="text/javascript">

/***********************************************
* Random Content Colors script- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

//specify list of random background colors to apply to CSS class "randomcolor"
//For each entry, you can optionally specify a text and link color via the syntax:
// "BackgroundColor:TextColor" OR "BackgroundColor:TextColor:LinkColor"
var randombgcolors=["green:white:yellow", "#DDF4FF", "#FFFF97", "#CFFF9F"]

var rbcssrule=""
var randomnum=Math.floor(Math.random()*randombgcolors.length)
if (randombgcolors[randomnum].indexOf(":")!=-1){
rbcssrule="background-color: "+randombgcolors[randomnum].split(":")[0]+";"
rbcssrule+="color: "+randombgcolors[randomnum].split(":")[1]+";"
}
else
rbcssrule="background-color: "+randombgcolors[randomnum]+";"

document.write('<style type="text/css">\n')
document.write('.randomcolor{'+rbcssrule+'}\n')
if (randombgcolors[randomnum].split(":").length==3) //if link color specified
document.write('.randomcolor a{color:'+randombgcolors[randomnum].split(":")[2]+';}\n')
document.write('<\/style>')

</script>
4

2 に答える 2

3

このコードは、ランダムに選択された色をただ 1 つのクラス (randomcolor) に設定しているようです。すべての div に同じクラスがあると仮定すると、それらはすべてそのランダムな色になります。

編集:

私が作成したこの JSFiddle を確認してください。探しているものが得られるはずです。

http://jsfiddle.net/VXG36/1/

HTML:

<div class="random">Div 1</div>
<div class="random">Div 2</div>
<div class="random">Div 3</div>

JQuery:

$(document).ready(function() {
    var randomColors = ["green","yellow","red","blue","orange","pink","cyan"];
    $(".random").each(function(index) {
        var len = randomColors.length;
        var randomNum = Math.floor(Math.random()*len);
        $(this).css("backgroundColor",randomColors[randomNum]);
        //Removes color from array so it can't be used again
        randomColors.splice(randomNum, 1);
    });
});
于 2013-08-15T18:44:24.083 に答える
0

私の理解では、randomnumは常に 4 になります。「green:white:yellow」コレクションにヒットすると、常に randombgcolors[randomnum].split(":")[0] に分割されます。これは緑であり、randombgcolors[randomnum ].split(":")[1] 常に白です。おそらく、 randomnumを 1 つとしてヒットすると、ランダムな緑:白:黄色の色を取得するために、0 から 2 の間で選択する別のランダマイザーが必要になります。

于 2013-08-15T19:03:03.593 に答える