2017-06-28 5 views
0

リストがあり、li:nth child cssではなく、rgbカラーコードを使用してカラーコードを動的に増やそうとしています。jqueryを使ってカラーコードを動的に増やす

$(document).ready(function(){ 
 
var items = $('#navigation li'); 
 
var colorCode =0; 
 
items.each(function (i, e) { 
 
    colorCode++; 
 
    alert(colorCode) 
 
    $(this).css("background-color", "rgb("+colorCode + "," + colorCode + "," + colorCode + ")"); 
 
}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<nav> 
 
    <ul id="navigation"> 
 
    <li> 
 
    hello 
 
    </li> 
 
    <li> 
 
    hello123 
 
    </li> 
 
    <li> 
 
    hello345 
 
    </li> 
 
    <li> 
 
    hello456 
 
    </li> 
 
    </ul> 
 
</nav>

問題は、カウンタカラーコードが増加していることであるが、それは、すべてのLi要素の黒色を示します。

+0

:あなたはそれらをすべて見ることができますので、私は、単純な例では255個の要素を使用しましたか?それは状況に最適です。 – Martijn

+1

あなたは10、20、30を使用すると0,1,2のRGBカラーの違いを理解していないので、違いが分かります。 –

+2

実際は黒ではなく、 'rgb(4、4、4)'です。 50 + elemensでこのコードを使用してみてくださいと、あなたは確かに違いが表示されます。注:R、G、Bに同じカラーコードを使用しているため、結果は黒から灰色までの尺度になります。 – debute

答えて

2

一部のブラウザdev toolsを使用して<li>の要素を見ると、色のスタイルがアルゴリズムに従って正しく設定されていることがわかります。色は黒色に似ています。

各色の部分に2つ以上を追加すると、色の変化が表示されることがわかります。

また、配列内の色を定義することもできます。関数は、定義したi-thの色を返します。色の値を手動で計算するよりも、見栄えの良い色を定義する方が簡単かもしれません。

$(document).ready(function(){ 
 
var items = $('#navigation li'); 
 
var colorCode =0; 
 
items.each(function (i, e) { 
 
    colorCode += 64; 
 
    $(this).css("background-color", "rgb("+colorCode + "," + colorCode + "," + colorCode + ")"); 
 
}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<nav> 
 
    <ul id="navigation"> 
 
    <li> 
 
    hello 
 
    </li> 
 
    <li> 
 
    hello123 
 
    </li> 
 
    <li> 
 
    hello345 
 
    </li> 
 
    <li> 
 
    hello456 
 
    </li> 
 
    </ul> 
 
</nav>

+0

ありがとうございましたあなたの説明のためにありがとうございました。 "配列の色"、そうです、私はそのオプションを試しました、私は配列なしでしようとしています、li:nth child and stuffs.Just checking :) –

1

私がコメントで言ったように、あなたは色を見るために多くの要素を必要としています。 CSSでないのはなぜ

$(document).ready(function() { 
 
    for(var i = 0; i < 255; i++) { 
 
     $('#navigation li').first().clone().appendTo('#navigation'); 
 
    } 
 

 
    var colorCode = 0; 
 

 
    $('#navigation li').each(function (i, e) { 
 
     colorCode++; 
 
     $(this).css("background-color", "rgb("+colorCode + "," + colorCode + "," + colorCode + ")"); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<nav> 
 
    <ul id="navigation"> 
 
     <li>hello</li> 
 
    </ul> 
 
</nav>

関連する問題