「セレクトボックスで背景の色を変える」──これもJavaScriptの基本だけでカンタンに実現できます。
この記事では、JavaScript入門として「セレクトボックスの値に応じて背景色を変更する方法」をわかりやすく解説します。
イベント処理やスタイルの変更など、JavaScriptの基本操作を実際に動かしながら学べる内容になっているので、ぜひ手を動かして試してみてください!
まずは実際に動かしてみましょう!
「好きな色を選んでください」と書かれたセレクトボックスをクリックすると、いろいろな色の選択肢が表示されます。
その中から好きな色を1つ選んでみてください。すると、上のエリアの背景色が選んだ色に変わります。
別の色を選べば、その色に合わせて背景色も変わります。
背景色チェンジ
はじめに
JavaScriptと聞くと、「なんだかむずかしそう…」と思ってしまう方も多いかもしれません。
でも今回は、セレクトボックス(選択メニュー)を使って、背景の色を変えるだけの超シンプルなしくみを紹介します。
この記事は、HTMLとCSSの基本を理解し、VSCodeなどのエディタでコードを書ける方を対象にしています。
(HTMLやCSSにまだ自信がない方は、まずはUdemyなどの入門講座から始めてみるのがおすすめです)
「クリックするだけで色が変わった!」というちょっとした体験でも、プログラミングの楽しさを感じられるはず。
むずかしい専門用語はできるだけ使わず、わかりやすく解説していきます!
コードを書いてみよう
ここからは、実際にコードを書いていきましょう。
今回は、HTML・CSS・JavaScriptの3つに分けて紹介します。
まずはHTMLで「背景色を変更するエリア」と「セレクトボックス(選択メニュー)」を配置します。
次にCSSで見た目を整え、最後にJavaScriptで動きを加えていきます。
HTMLの簡単な解説
<body>
<div class="container">
<div id="changeColorArea" class="changeColorArea">
<p>背景色チェンジ</p>
</div>
<div class="colorSelectArea">
<label for="colorSelect">背景色を選択:</label>
<select id="colorSelect">
<option value="" disabled selected>
--好きな色を選んでください--
</option>
<option value="red">赤</option>
<option value="blue">青</option>
<option value="green">緑</option>
<option value="yellow">黄色</option>
<option value="purple">紫</option>
<option value="orange">オレンジ</option>
<option value="pink">ピンク</option>
<option value="black">黒</option>
<option value="white">白</option>
</select>
</div>
</div>
<script src="app.js"></script>
</body>
.container
の中に、色が変わるエリア(#changeColorArea
)と、色を選ぶセレクトボックスがあります。- セレクトボックス(
<select>
タグ)は、「赤」や「青」などの選択肢を用意していて、選んだ値によって後で背景色が変わるようにします。 - 最後の
<script src="app.js"></script>
で、JavaScriptのファイルを読み込んで、動きを追加します。
CSSの簡単な解説
.container {
width: 90%;
margin: 20px auto 0;
padding: 20px;
border: 1px solid #999;
background-color: #fffff0;
}
.changeColorArea {
width: 100%;
height: 200px;
border: 1px solid #999;
margin-bottom: 20px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background-color: white;
}
.changeColorArea p {
font-size: 1.5em;
padding: 10px 20px;
margin: 0;
background: white;
border: 1px solid #ccc;
box-shadow: inset 0px 0px 10px 0px rgba(0, 0, 0, 0.3);
}
.colorSelectArea label {
display: block;
margin-bottom: 10px;
font-size: 1.2em;
}
.colorSelectArea select {
width: 100%;
font-size: 1.1em;
padding: 6px;
}
@media (min-width: 576px) {
.container {
width: 576px;
}
}
.container
はページ全体のレイアウトを整えるための外枠です。.changeColorArea
が、背景色が変わるエリアです。中央にテキストが表示されるようにflexbox
を使っています。.colorSelectArea
まわりで、ラベルとセレクトボックスのデザインを整えています。- 最後の
@media
は、画面幅が広い場合に最大幅を固定するレスポンシブ対応です。
JavaScriptコードの詳しい解説
// 背景色を変更するエリアを取得
const changeColorArea = document.querySelector('#changeColorArea');
// セレクトボックスを取得
const colorSelect = document.querySelector('#colorSelect');
// セレクトボックスの値が変更されたら、背景色を変更
colorSelect.addEventListener('change', function () {
changeColorArea.style.backgroundColor = colorSelect.value;
});
1. const changeColorArea = document.querySelector('#changeColorArea');
- 意味:
ページ内にある、id="changeColorArea"
を持つHTML要素を探して取得しています。
この要素が「背景色を変えるエリア」になります。 - ポイント:
document.querySelector
は、CSSセレクタ(今回は#changeColorArea
)を使って最初に見つかった要素を取得するメソッドです。const
は変数宣言で、値を変えない定数を作ることを意味します。
2. const colorSelect = document.querySelector('#colorSelect');
- 意味:
ページ内のid="colorSelect"
を持つセレクトボックス(<select>
タグ)を取得しています。 - ポイント:
この変数を使って、選択された色の値をJavaScriptで扱います。
3. colorSelect.addEventListener('change', function () { ... });
- 意味:
セレクトボックスの中身が変わった(選んでいる色が変わった)ときに、括弧内の関数を実行します。
この仕組みを「イベントリスナー」といいます。 - ポイント:
'change'
イベントは、選択肢が変わった瞬間に起きます。
無名関数(function () { ... }
)は、そのイベントが起きたときに実行される処理を表します。
4. changeColorArea.style.backgroundColor = colorSelect.value;
- 意味:
背景色を変更するエリアのCSSのbackground-color
プロパティに、セレクトボックスで選ばれた色の値を代入します。 - ポイント:
colorSelect.value
は、今選ばれている色(例:"red"
や"blue"
)の文字列を取得します。
それを背景色として適用することで、画面上の色が変わります。
まとめ
このコードは、
- ページの中から「色を変える部分」と「色を選ぶ部分」を探し出し、
- ユーザーが色を選ぶたびに、その色を背景に反映する
という動きをシンプルに実現しています。
Web開発を本格的に学ぶならこちら
今回のような「セレクトボックスで背景色を変える」シンプルな仕組みも、JavaScriptの基本を実感できる良い練習になります。
「もっとJavaScriptをしっかり学んでみたい」「自分でもプロっぽい動きを作ってみたい」──そんな気持ちが芽生えた方には、私が実際に学んだUdemy講座をおすすめします👇
【世界で90万人が受講】Web Developer Bootcamp(日本語版)
(HTML/CSSの基本から、JavaScriptやDOM操作までしっかり学べます)
気になる方は、セールのタイミングで講座ページをのぞいてみるのが◎です!
関連リンク
📚 おすすめのUdemy講座について詳しく知りたい方はこちら
👉 独学でWebアプリが作れる!初心者におすすめのUdemy講座【体験レビューあり】
🔮 背景色を変える機能を使った自作アプリ
👉 今日のラッキーカラー診断|信じるか信じないかはあなた次第!