検索条件
全1件
(1/1ページ)
なんかこんな感じのやつの作り方。
左側にあるカラーパレットを出すボタンはinput type="color"で実現できるので、単純なカラー入力だけならこれでも構わない。現時点ではAndroid版Firefoxを除き、主要ブラウザは
ただ、コードも欲しいことが往々だと思うので、その場合は横にinput type="text"を生やして、次に示すサンプルコードのように双方の入力値をバインディングしてやればよい。
動きはデモページで確認できる。
<input id="palette" type="color">
<input id="code" type="text">
<script>
const getInput = () => {
return {
palette: document.getElementById('palette'),
code: document.getElementById('code')
};
};
const registerHandlers = (paletteEl, codeEl) => {
paletteEl.addEventListener('input', (e) => {
codeEl.value = e.target.value;
});
codeEl.addEventListener('input', (e) => {
paletteEl.value = e.target.value;
});
};
window.addEventListener('DOMContentLoaded', () => {
const input = getInput();
registerHandlers(input.palette, input.code);
});
</script>
PC Safari 18.2とiOS 26.3のSafariで確認した見た目。
一行目が初期表示、二行目がカラーパレット展開表示。iOS Safariの方は素の状態だとUIが小さすぎて見えないので、かなり拡大して表示している。