0

私はこのコードをオンラインで見つけましたが、それは私が望むことをしません。

function ColorLuminance(hex, lum) {
    // validate hex string
    hex = String(hex).replace(/[^0-9a-f]/gi, '');
    if (hex.length < 6) {
        hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2];
    }
    lum = lum || 0;
    // convert to decimal and change luminosity
    var rgb = "#", c, i;
    for (i = 0; i < 3; i++) {
        c = parseInt(hex.substr(i*2,2), 16);
        c = Math.round(Math.min(Math.max(0, c + (c * lum)), 255)).toString(16);
        rgb += ("00"+c).substr(c.length);
    }
    return rgb;
}

そこで、jQuery を使用して周囲のボックスの背景色を変更します (投票結果 (右側) の背景色に表示されます)。

$(".bar-container").each(function() {
    var hexColor = $(this).children(":first").css("background-color");
    var bgColor = ColorLuminance(hexColor, .2);
    $(this).css({"background-color": bgColor});
});

これは、ドキュメントの準備ができたときに使用されます。

私がやろうとしているのは、実際のポーリングの色 (左からパーセンテージ) を取得し、コンテナー全体の色を少し明るくすることです (基本的な色は同じです)。したがって、パーセンテージ バーが赤の場合、それを含むバーの全体的な背景が紫になるべきではありません。赤の明るい色にする必要があります。

関数が機能していません。ColorLuminance色が完全に変更されているためです。

この関数を明るい色に変更するにはどうすればよいですか? (できればパーセンテージベースで、lumパラメーターの目的です)

4

1 に答える 1

0

RGB 色の輝度を変更するには、HSV 色空間に変換します。色相 (色)、彩度、値 (明るさ) が得られます。したがって、明るさのみを変更できます。

次に、色を HSV 色空間から RGB 色空間に再び戻します。

HSV javascript インバーターは、http://www.javascripter.net/faq/rgb2hsv.htm で見つけることができます。HSVに関する 詳細は、https: //en.wikipedia.org/wiki/HSL_and_HSVで確認できます。

Can I force jQuery.css ("backgroundColor") returns on hexadecimal format? もご覧ください。、色は常にRGBとしてすでに返されているようです。

于 2013-05-17T05:42:51.540 に答える