を発射します。物事を複雑にする必要はありません。 :) 基本的には、新しい色を読み取り、色の入力値が変更されたときに新しいdivを作成します。 input
またはchange
イベントを使用することができますが、change
の方が良いと思います。only fires when user has changed the valueです。
例のコードでは、ユーザーが色を変更しなくても、入力クリック時にdivを作成します。 また、ユーザーがクリックするたびに、入力値が変更されたときに何かを行う新しいリスナーを設定します。しばらくすると、1回のクリックで同じことが複数回実行されます(これまでのリスナーごとに1回)。 (サイドノート:同じことをしても同じコードであっても、毎回別のものとして扱われる無名関数を提供するので、そのように動作します)
以下のコードをチェックしてください。理解するのはかなり簡単です。 :)
HTML:
<div>
<label>Pick a color:</label>
<input type="color" id="color-picker">
</div>
<div id="last-colors">
<!-- <div class="saved-color"></div> -->
</div>
CSS:
.saved-color {
border: 1px solid #000;
display: inline-block;
margin: 2px;
height: 20px;
width: 20px;
}
JS:
var colorPickerEl = document.getElementById('color-picker');
var lastColorsEl = document.getElementById('last-colors');
colorPickerEl.addEventListener('change', colorPickerOnChange, false);
function colorPickerOnChange(e) {
var color = e.target.value;
addColorDiv(color);
};
function addColorDiv(color) {
var newDiv = document.createElement("div");
newDiv.className = 'saved-color';
newDiv.style.backgroundColor = color;
lastColorsEl.appendChild(newDiv);
//alternatively, insert new div before old divs:
//lastColorsEl.insertBefore(newDiv, lastColorsEl.firstChild);
};
https://codepen.io/anon/pen/mAGJOd
すべてのdivの変更色を何を意味するのか?すべての部門 –