2011-12-18 13 views
2

2色を選択し、グラデーションの背景にdivを表示することができます。jqueryでcolorpickerのグラデーションの背景色を設定しますか?

"jscolor.com"で2色のピッカーを行い、色を選択でき、選択した色が入力フィールドに表示されます。

Top color<br /> 
<input type="text" name="color1" class="colors" size="7" value="#444444"/> 
<br><br> 
Bottom color<br /> 
<input type="text" name="color2" class="colors" size="7" value="#17181a"/> 

次に、グラデーションの背景を表示したいdiv。

<div id="gradient"></div> 

入力フィールドに基づいて背景色を設定するにはどうすればよいですか? そして提案は謝りました、ありがとう。

答えて

5

ステップ:

  • あなたがそれらを簡単に検索することができますので、入力に一意のIDを与えます。
  • jQueryの.css()を使用してbackground-image: linear-gradient...を設定し、すべてのベンダープレフィックスを含めることを忘れないでください。
  • リフレッシュlinear-gradientときに入力の変化とページが

例ロードされる:

$(function() { 
    // when inputs change, update the gradient 
    $(".color").change(refreshGradient); 
    // draw the gradient when page is loaded 
    refreshGradient(); 
}); 

function refreshGradient() { 
    var gradientBody = 'linear-gradient(top, ' + $("#color1").val() + ', ' + $("#color2").val() + ')'; 

    // we need to use vendor prefixes 
    $.each(['', '-o-', '-moz-', '-webkit-', '-ms-'], function() { 
    $("#gradient").css({ 'background-image': this + gradientBody }); 
    }); 
} 

HEREコードです。

更新:(コメントを参照してください)

jQueryのminicolors .change()ハンドラと統合するためには、異なる登録する必要があります。

$(".color").miniColors({ 
    change: refreshGradient 
}); 

HEREjQuery miniColorsプラグインを使用した例です。

+0

こんにちはdzejkejとありがとうございます。 私はそれを試しましたが、私はそれを動作させることはできません、私は最初に代わりにminicolorsにcolorpickerを変更しなければならなかった(http://abeautifulsite.net/blog/2011/02/jquery-minicolors-a-color-selector-for-私がcolorpickerを持っているページにはajaxがロードされ、jscolor pickerが別のページでテストされていて、ajaxページでそれを使用したときには動作していないからです。だから、代わりにミニカラーの1つを見つけて、それは私のページではうまくいきますが、そのピッカーで作業するコードは得られません。悪い私のコードを下記に投稿してください。 –

+0

@ClaesGustavssonコードの変更と実際の例を使って私の答えを更新しました。一見をして、アップホートして答えを受け入れるのを忘れないでください:)。また、あなたは質問を編集して答えを書くのではなく、あなたの質問を更新する必要があります。 – kubetz

+0

dzejkel !!!あなたは男です:-)多くのverryありがとう!それを動作させるために しかし、今では完璧な仕事 おかげで多くのことを;。 私はminiColors({ }) $(ドキュメント).ready(関数(){ $( "色")を削除する必要がありました。!! –

関連する問題