CMSなどの管理システムを作っているとき、カラーピッカーを導入したい場合があります。
カラーピッカー系のライブラリはたくさんあるのですが、今回は簡単にカラーピッカーを追加できるプラグイン「jQuery asColorPicker」を紹介していきます。
導入方法
ダウンロード
jQuery asColorPickerを利用するは、以下のファイルを読み込む必要があります。
[box class=”blue_box” title=”jQuery asColorPickerに必要なもの”]
- jQuery
- jQuery asColorPicker
- jQuery asGradient
[/box]
まずは、jQuery asColorPickerをダウンロードします。
Gitにアクセスしてzipファイルをダウンロードしましょう。
zipファイルを展開してlibディレクトリを丸ごと適当なディレクトリに配置してください。
つづいて、jQuery asGradientをダウンロードします。
こちらもGitにアクセスしてzipファイルをダウンロードしましょう。
zipファイルを展開してdistディレクトリを丸ごと適当なディレクトリに配置してください。
基本コード
jQuery本体と、jQuery asColorPickerのjsファイルとCSSを読み込みます。
<!-- jQuery本体 --> <script src="/path/to/jquery.js"></script> <!-- jQuery asColorPickerに必要なファイル --> <script src="/path/to/jquery-asColor.js"></script> <script src="/path/to/jquery-asGradient.js"></script> <script src="/path/to/jquery-asColorPicker.js"></script> <!-- jQuery asColorPickerのCSS --> <link rel="stylesheet" href="asColorPicker.css">
カラーピッカーにするinputタグを記述します。
value値で、デフォルトのカラーコードを設定することができます。
<input type='text' class="colorpicker" value="#000" />
最後にinputタグをカラーピッカー化するjQuery asColorPicker用のスクリプトを記述します。
今回はclassがcolorpickerになっているinputタグをカラーピッカーにします。
$(function(){ $('.colorpicker').asColorPicker(); });
これでインプットタグにカラーピッカーが表示されるようになります!
jQuery asColorPickerのよく使う機能
changeイベントの取得
jQuery asColorPickerにはクリックイベントなどを取得する機能があります。
例えば、changeイベントの取得は以下のコードで取得することができます。
$('.sample').on('asColorPicker::change', function (e) { console.log(e) });
クリック時にカラーコードを取得する
WordPressのカスタマイズのように、カラーピッカーで色を選択すると同時に背景色などを変更したい場合があります。
そんな時は、changeイベントと$().asColorPicker(‘val’)メソッドを使えば、簡単に実装することができます。
まずは、背景色を設定するdivタグと、カラーピッカーにするinputタグを記述します。
<!-- 背景色用div --> <div class="bg"></div> <!-- カラーピッカー用input --> <input type="text" value="#000" class="colorpicker">
つづいて、背景色用divタグのスタイルを設定します。
サンプルでは幅と高さ100px、デフォルトの背景色を#000に設定しました。
.bg{ background:#000; width:100px; height:100px; }
最後に、jQuery asColorPicker用のスクリプトを記述します。
changeイベントを取得して、色が選択されるたびにdivタグの背景色を変更しています。
$(function(){ // カラーピッカー用生成 $('.colorpicker').asColorPicker(); // カラーピッカーのチェンジイベントを取得 $('.colorpicker').on('asColorPicker::change', function (e) { // 選択されたカラーコードを取得 var select_color = $(e.target).asColorPicker('val'); // div.bgの背景色を変更する $('.bg').css('background',select_color); }); });
これで色が選択されるたびに、divタグの背景色が変更されます。
全体のコードは以下の通りです。
<style> .bg{ background:#000; width:100px; height:100px; } </style> <div class="bg"></div> <input type="text" value="#000" class="colorpicker"> <script> $(function(){ $('.colorpicker').asColorPicker(); $('.colorpicker').on('asColorPicker::change', function (e) { var select_color = $(e.target).asColorPicker('val'); $('.bg').css('background',select_color); }); }); </script>
コメント