参考URLにあるColorPickerの実装を試してみました。
--------------------------------------------------------------
Microsoft Office 2010のような色選択コントロールを実装します。
【実装コード】
1、jQuery (v1.7 or greater), jQuery UI (v1.8 or greater)をダウンロードして、実装する
HTMLにコード追加
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js" type="text/javascript" charset="utf-8"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js" type="text/javascript" charset="utf-8"></script>
<script src="js/evol.colorpicker.min.js" type="text/javascript" charset="utf-8"></script>
2、使うCSSを記述HTMLにコード追加
<link
rel="stylesheet" type="text/css"
href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/themes/ui-lightness/jquery-ui.css"
/>
<link href="css/evol.colorpicker.css" rel="stylesheet" type="text/css" />
3、inputタブに、colorpickerの実装
HTMLにコード追加
<div style="width:128px;">
<input style="width:100px;" id="mycolor" class="colorPicker evo-cp0" />
<div class="evo-colorind" style="background-color:#8db3e2"></div>
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#mycolor").colorpicker();
});
</script>
4、オプション設定
(1) 初期色設定
$("#mycolor").colorpicker({
color: "#ffffff"
});
(2) ColorPickerのパレットデフォルト表示
$("#mycolor").colorpicker({
defaultPalette: 'web'
});
(3) プレート内で色クリック及びマウスオーバー時の情報を下段に表示しない
$("#mycolor").colorpicker({
displayIndicator: false
});
(4) ボタン非表示
$("#mycolor").colorpicker({
hideButton: true
});
(5) パレットはボタンのみで表示
このオプションをしないと、inputのfocusを受けた時にパレット表示される。
デフォルトは、inputフォーカス時とボタンクリック時に表示されます。
$('#mycolor').colorpicker({showOn:'button'});
(6) パレット内表示文字変更
$("#mycolor").colorpicker({
strings: "テーマの色,標準の色,Webスタイル,Theme Colors,パレット戻る,履歴,No history yet."
});
(7) パレットに透明色("#0000ffff")選択可能にする
$("#mycolor").colorpicker({
transparentColor: true
});
5、イベント処理
(1) 色選択時
$("#mycolor").on("change.color", function(event, color){
$("#title").attr("style", "background-color:" + color);
})
(2) パレット内のカラーボックスマウスオーバー時
$("#mycolor").on("mouseover.color", function(event, color){
$('#title').attr("style", "background-color:" + color);
})
6、メソッド
(1) 色クリア
$("#mycolor").colorpicker("clear");
(2) グレーアウト(パレット表示できないようにする)
$('#mycolor').colorpicker("disable");
反対(パレット表示可能)の場合
$("#mycolor").colorpicker("enable");
(3) パレットの選択色設定・取得
var color = $("#mycolor").colorpicker("val");
$("#mycolor").colorpicker("val", "#d0d0d0");
(4) パレット表示(ボタンやinputから表示以外の方法)
$("#mycolor").colorpicker("showPalette");
(5) パレット非表示(ボタンやinputから表示以外の方法)
$("#mycolor").colorpicker("hidePalette");
7、カラーパレットテーマ(デザイン色)変更
jQuery UI widgetと同じテーマで変更できます
独自のテーマ作成もきます
http://jqueryui.com/themeroller/#!themeGallery=undefined
<link id="jquiCSS" rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/themes/ui-lightness/jquery-ui.css" type="text/css" media="all">
の"ui-lightness"を変更します。
またはプログラム内で行う場合は、以下のような感じで行います。
var theme = "ui-darkness";
$('#jquiCSS').attr('href','http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/themes/'+ theme +'/jquery-ui.css');
$('.css').removeClass('sel');
$(this).addClass('sel');
8、実装例
<div class="demoPanel" style="width:130px">
<input id="cpButton" value="#92cddc" />
</div>
<script type="text/javascript">
$('#cpButton').colorpicker({ showOn: 'button' });
$("#cpButton").colorpicker({
strings: "テーマの色,標準の色,Webスタイル,Theme Colors,パレット戻る,履歴,No history yet."
});
$("#cpButton").colorpicker({
displayIndicator: false
});
$("#cpButton").colorpicker({
color: "#ffffff"
});
var theme = "ui-darkness";
$('#jquiCSS').attr('href', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/themes/' + theme + '/jquery-ui.css');
$('.css').removeClass('sel');
$(this).addClass('sel');
</script>
9、実装例をTypeScriptで実装
JavaScriptファイル(test.js)を作成して、8で記載したコードを追加する
function SetColorPicker() {
$('#cpButton').colorpicker({ showOn: 'button' });
$("#cpButton").colorpicker({
strings: "テーマの色,標準の色,Webスタイル,Theme Colors,パレット戻る,履歴,No history yet."
});
$("#cpButton").colorpicker({
displayIndicator: false
});
$("#cpButton").colorpicker({
color: "#ffffff"
});
var theme = "ui-darkness";
$('#jquiCSS').attr('href', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/themes/' + theme + '/jquery-ui.css');
$('.css').removeClass('sel');
$(this).addClass('sel');
}
TypeScriptファイル(app.ts)で以下のコードを追加する 。
(declare宣言(アンビエント)で、JavaScriptで定義した関数を宣言する)
declare function SetColorPicker();
$(document.body).ready(function () {
SetColorPicker();
}
【参考URL】
http://www.codeproject.com/Articles/452401/ColorPicker-a-jQuery-UI-Widget
0 件のコメント:
コメントを投稿