2010/10/23

background-colorをhexに変換

jQueryで、背景色を取得するコード

$( this ).css( "background-color" );
は、ブラウザによりRGBか、HEXで返ってくる。
参考:jQueryで色名を取得する際の注意


ここ(英語)を参考にして、
返ってくる文字列が以下のどのフォーマットでも
"#0046FF"のような文字列を作成するコード
  • rgb(0,70,255)
  • rgb(0, 70, 255)
  • #0046ff




var hexString = $( this ).css( "background-color" ); 

var parts = hexString.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
// ここでRGBフォーマットの場合は、
// ["rgb(0, 70, 255", "0", "70", "255"]のようになります。

if ( parts != null && parts.length == 4 )
{
    // HEXフォーマットなら、ここには入ってきません。
    delete ( parts[ 0 ] );
    for ( var i = 1 ; i <= 3 ; ++i )
    {
        parts[ i ] = parseInt(parts[ i ]).toString(16);
        if ( parts[ i ].length == 1 )
        {
            parts[ i ] = '0' + parts[ i ];
        }
    }
    hexString = "#" + parts.join( "" );
}

0 コメント:

コメントを投稿

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Blogger Templates