カラーピッカーで選択した色の値をJavaScriptを使って取得・設定する
フォームで利用可能なカラーピッカーで設定された値を JavaScript から取得したり設定したりする方法について解説します。カラーピッカーは色のサンプルから色を選択する場合に使用されます。選択された色は #FFFFFF の形式で取得できます。カラーピッカーを表示するには input 要素で type 属性に color を指定します。
(Last modified: )
HTMLでカラーピッカーを作成する
HTML でカラーピッカーを表示するには input 要素で type 属性に color を指定します。
<input type="color">
ご利用の環境によってどのように表示されるのかは異なりますが、 Firefox / Wndows10 の場合はカラーピッカーをクリックすると次のように色を選択する画面が表示されます。
カラーピッカーの初期値を設定するには value 属性に値を設定します。
<input type="color" value="#0000FF">
カラーピッカーの前にラベルを表示する場合は label 要素と組み合わせます。
<label>色を選択 <input type="color"></label>
カラーピッカーの値の取得と設定
カラーピッカーの値を取得するには input 要素を表す HTMLInputElement オブジェクトの value プロパティの値を参照します。書式は次のとおりです。
element.value
例えば id 属性の値が mycolor のカラーピッカーで指定されている値を取得するには次のように記述します。
let element = document.getElementById('mycolor');
console.log(element.value);
また value プロパティに値を代入するとカラーピッカーのに値を設定することができます。
let element = document.getElementById('mycolor');
element.value = '#FF0000';
次のサンプルを見てください。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>サンプル</title>
</head>
<body>
<p>サンプルページです。</p>
<div>
<label><input type="color" id="colorBox">色の選択</label>
</div>
<div>
<input type="button" value="Check" id="checkButton">
</div>
<script>
function butotnClick(){
console.log('現在選択している色は ' + colorBox.value + ' です');
}
let colorBox = document.getElementById('colorBox');
colorBox.value = "#F0F0F0";
let checkButton = document.getElementById('checkButton');
checkButton.addEventListener('click', butotnClick);
</script>
</body>
</html>
カラーピッカーには初期値として #F0F0F0 を設定しています。カラーピッカーをクリックすると次のような色の選択画面が表示されます( Chrome / Windows10 の場合)。
新しい色をクリックすると色が設定されます。
画面に表示されているボタンをクリックすると、カラーピッカーの value プロパティの値を参照し現在設定されている色の情報をコンソールに出力します。
カラーピッカーのイベント処理
カラーピッカーでは色を変更すると change イベントが発生します。change イベントを利用する場合は次のように記述します。
<input type="color" id="mycolor">
<script>
function inputChange(){
// イベントが発生した時の処理
}
let element = document.getElementById('mycolor');
element.addEventListener('change', inputChange);
</script>
change イベントの詳しい使い方については「changeイベント:フォームや選択メニューが変更されたとき」を参照されてください。
次のサンプルを見てください。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>サンプル</title>
<style>
#outer{
margin-top:20px;
padding:50px;
width:300px;
background:#00F000;
color:#000000;
text-align:center;
font-size:30px;
font-weight:bold;
}
</style>
</head>
<body>
<p>サンプルページです。</p>
<div>
<label><input type="color" id="colorBack">背景色</label>
<label><input type="color" id="colorFore">文字色</label>
</div>
<div id="outer">
Hello, JavaScript
</div>
<script>
let outer = document.getElementById('outer');
let colorBack = document.getElementById('colorBack');
colorBack.value = "#00F000";
colorBack.addEventListener('change', function(){
outer.style.background = this.value;
});
let colorFore = document.getElementById('colorFore');
colorFore.value = "#000000";
colorFore.addEventListener('change', function(){
outer.style.color = this.value;
});
</script>
</body>
</html>
画面には背景色と文字色を設定するためのカラーピッカーが表示されています。
背景色のカラーピッカーで新しい色を選択すると、画面下に表示された div 要素内の背景色が変更されます。
文字色のカラーピッカーで新しい色を選択すると、画面下に表示された div 要素内の文字色が変更されます。
-- --
フォームで利用可能なカラーピッカーを使って設定した値を JavaScript から取得したり設定したりする方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。