2012-01-15 9 views
2

JSColorを使用すると、ユーザーが色を選択した後、どのように「16進」を取得できますか?JSColorでは、どのように色の16進数を取得できますか?

$("input#colorpicker").css('background-color') => this returns background-color: rgb(107, 132, 255); 

ただし、16進数ではありません。

+0

JSColorは色のHEX値を対応する入力に値として入れませんか?私は '$(" input#colorpicker ")。val()'を意味します。 – dfsq

+1

@dfsqいいえ。 val()は何も返しません。 – TIMEX

+0

出力方法を教えてください。私はcolorpickerを実行しているが、私は値を出力することはできません – Interactive

答えて

3

jQuery.cssが設定された値を返すと仮定します。 HEXにRGBを変換するには、次の機能を試してみてください。

function colorToHex(color) { 
    if (color.substr(0, 1) === '#') { 
     return color; 
    } 
    var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color); 

    var red = parseInt(digits[2]); 
    var green = parseInt(digits[3]); 
    var blue = parseInt(digits[4]); 

    var rgb = blue | (green << 8) | (red << 16); 
    return digits[1] + '#' + rgb.toString(16); 
}; 

colorToHex('rgb(120, 120, 240)') 
0

利用できるのonchangeイベントがあります:

$("input#colorpicker").change(function() { 
    console.log(this.color); 
}); 
関連する問題