ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で RGB を 16 進カラーコードに変換するには?
RGB 値から 16 進カラー コードを抽出する
jQuery を使用して要素の背景の RGB 値を取得するだけでは、必ずしも十分とは限りません。これらの値を 16 進数に変換する必要がある場合があります。このコード スニペットは、RGB 値を抽出する方法を示しています。
$('#selector').css('backgroundColor');
私たちの目標は、RGB 値に対応する 16 進値を取得することです。
解決策
TL;DR ソリューションは、RGB と RGBA の両方を処理する簡潔な 1 行関数を提供します形式:
const rgba2hex = (rgba) => `#${rgba.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+\.{0,1}\d*))?\)$/).slice(1).map((n, i) => (i === 3 ? Math.round(parseFloat(n) * 255) : parseFloat(n)).toString(16).padStart(2, '0').replace('NaN', '')).join('')}`
更新されたソリューション (2021)
最新のブラウザーは ECMAScript 5 および 2015 の機能をサポートするようになり、より洗練されたソリューションが可能になりました:
const rgb2hex = (rgb) => `#${rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/).slice(1).map(n => parseInt(n, 10).toString(16).padStart(2, '0')).join('')}`
この更新された関数により、RGB から 16 進カラーへの変換が簡素化されます。コード。
以上がJavaScript で RGB を 16 進カラーコードに変換するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。