ホームページ  >  記事  >  ウェブフロントエンド  >  HTML5 テクノロジーを使用して、独自のクールなカラーピッカー_html5 チュートリアル スキルを開発します

HTML5 テクノロジーを使用して、独自のクールなカラーピッカー_html5 チュートリアル スキルを開発します

WBOY
WBOYオリジナル
2016-05-16 15:48:401562ブラウズ

jquery/js を使用して開発された多くのカラー ピッカーを見たことがあるかもしれません。今日は、HTML5 テクノロジを使用して、より優れたカラー ピッカーを独自に実装します。皆さんも気に入っていただければ幸いです!

コードをコピー
コードは次のとおりです:

"表示: なし">




B

;/div> ;


コードは非常に単純で、クリック要素とカラー セレクターの表示に使用される要素の 2 つの部分が含まれています。


JavaScript コード


コードをコピーコードは次のとおりです:
$(function(){
var bCanPreview = true; // プレビュー可能
// キャンバスとコンテキスト オブジェクトを作成
var Canvas = document.getElementById('picker') ;
var ctx = Canvas.getContext('2d');
// アクティブなイメージを描画
var image = new Image();
ctx .drawImage( image, 0, 0, image.width, image.height); // キャンバスに画像を描画します
}
// 希望のカラーホイールを選択します
var imagerc="images/colorwheel1.png ";
switch ($(canvas).attr('var')) {
case '2':
imagesrc="images/colorwheel2.png";
break;
case '3' :
images/colorwheel3.png";
ケース '4':
images/colorwheel4.png"; >case ' 5':
imagesrc="images/colorwheel5.png";
break;
image.src = imageSrc;
$('#picker').mouse( function(e ) { // マウス移動ハンドラー
if (bCanPreview) {
// 現在位置の座標を取得
var CanvasOffset = $(canvas).offset();
var CanvasX = Math .floor( e.pageX - CanvasOffset.left);
var CanvasY = Math.floor(e.pageY - CanvasOffset.top)
// 現在のピクセルを取得
var imageData = ctx.getImageData(canvasX) , CanvasY, 1, 1);
var ピクセル = imageData.data;
// プレビューの色を更新します
var ピクセルカラー = "rgb(" ピクセル[0] ", " ピクセル[1] ", "ピクセル[2 ] ")";
$('.preview').css('backgroundColor', ピクセルカラー);
// コントロールを更新します
$('#rVal').val(pixel[ 0]) ;
$('#gVal').val(ピクセル[1]);
$('#rgbVal'); '). val(ピクセル[0] ',' ピクセル[1] ',' ピクセル[2]); var dColor = ピクセル[1] 65536 * ピクセル[0]; >$( '#hexVal').val('#' ('0000' dColor.toString(16)).substr(-6));
}
}); picker') .click(function(e) { // クリック イベント ハンドラー
bCanPreview = !bCanPreview;
});
$('.preview').click(function(e) { //プレビュークリック
$('.colorpicker').fadeToggle("slow", "linear");

}; 🎜>全員 ご覧のとおり、これは新しいキャンバスとオブジェクトを作成するために使用される非常に短い js コードであり、円形のカラー プレートを描画します。さまざまな色のベースプレートをお選びいただけます。ここではパラメータを使用してさまざまなオプションを設定します。次のように:





コードをコピー


コードは次のとおりです:




<クラス前="html" 名前="コード"


次に、イベント (mousemove、click イベント) を追加します。ここではセレクターの表示・非表示にjQueryを使用しています。

コードをコピー
コードは次のとおりです:

$('.preview' ).click (function(e) { // クリックをプレビュー $('.colorpicker').fadeToggle("slow", "linear"); bCanPreview = true; });マウスの移動 選択したオブジェクトで情報を更新する必要があります。たとえば、現在のカラー



コード
をコピーします。コードは次のとおりです。
$('#picker').mousemove(function(e) { // マウス移動ハンドラー
if (bCanPreview) {
// 座標を取得現在の位置の
var CanvasOffset = $ (canvas).offset();
var CanvasX = Math.floor(e.pageX - CanvasOffset.left);
var CanvasY = Math.floor(e.pageY) - CanvasOffset.top);
/ / 現在のピクセルを取得します
var imageData = ctx.getImageData(canvasX, CanvasY, 1, 1);
varPixel = imageData.data; color
var ピクセルカラー = "rgb( " ピクセル[0] ", " ピクセル[1] ", " ピクセル[2] ")";
$('.preview').css('backgroundColor',ピクセルカラー);
// コントロールを更新します
$('#rVal').val(pixel[0]); >$('#bVal').val (ピクセル[2]);
$('#rgbVal').val(ピクセル[0] ',' ピクセル[1] ',' ピクセル[2]);
var dColor = ピクセル[2] 256 * ピクセル[1] 65536 * ピクセル[0];
$('#hexVal').val('#' ('0000' dColor.toString(16)) .substr(-6));
}
});
$('#picker').click(function(e) { // クリック イベント ハンドラー
bCanPreview = !bCanPreview;
});



CSS コード


異なる色のベース プレートの CSS:



コードをコピーします

コードは次のとおりです:
/* colorpicker スタイル */ .colorpicker { background-color: #222222 ;
ボーダー半径: 5px 5px 5px 5px;
ボックスシャドウ: 2px 2px 2px #444444;
フォントサイズ: 12px;
幅: 460px;
}
#picker {
カーソル: 左;
ボーダー: 0; 🎜>.controls {
float: right;
margin: 10px;
.controls > div {
border: 1px ソリッド
margin-bottom: 5px ;
オーバーフロー: 非表示;
パディング: 5px ;
}
.controls ラベル {
左;
.div 入力背景色: #121212;
ボーダー: 1px ソリッド #2F2F2F;
フォントサイズ: 10px;
>マージン左: 6px;
テキスト整列: 大文字;
}
.preview {
背景: url(" ../images/select.png") 繰り返し スクロール 中心 中心 透明;
border-radius: 3px;
box-shadow: 2px 2px 2px #444444;
cursor: pointer;
height: 30px;
幅: 30px;
}


皆さんも気に入っていただければ幸いです

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。