ミッション一覧に戻る
色を操る呪文

色を操る呪文

03/16 11:08
ミッション内容

ミッション:ボタンを押すたびに、箱の色が変わる装置をつくろう!

コードを写そう

HTMLタブに下のコードを貼り付けてください。

html
<button id="colorBtn">呪いをかけろ</button>
<div id="box"></div>

CSSタブに下のコードを貼り付けてください。

css
#box {
  width: 120px;
  height: 120px;
  background: #ccc;
  transition: background 0.3s;
}

.cursed {
  background: purple !important;
}

JSタブに下のコードを貼り付けてください。

js
const btn = document.querySelector('#colorBtn');
const box = document.querySelector('#box');

btn.addEventListener('click', function() {
  box.classList.toggle('cursed');
});

ボタンをクリックして、箱が紫色になったり元に戻ったりすることを確認してください。

コードを読み解こう

D-01で学んだ「名札と呼びかけ」の仕組みはD-02でも同じです。ここでは新しく登場したCSSとJSの連携を読み解きましょう。

CSSの .cursed:服のデザインを定義する

css
.cursed {
  background: purple !important;
}

.cursed は「cursed という名前の服のデザイン」を定義しています。この定義だけではまだ何も起きません。「こういう見た目の服がある」と宣言しているだけです。

JSの classList.toggle('cursed'):服を着たり脱いだりする

js
box.classList.toggle('cursed');

classList.toggle('cursed') は「box(箱)に cursed という服を着せたり、すでに着ていたら脱がせたりする」という命令です。

ボタンを押すたびに「着る → 脱ぐ → 着る → 脱ぐ」と繰り返すので、色がトグル(切り替え)します。

CSSとJSの対応関係はこうなっています:

css
.cursed { background: purple; }  ← 「cursed」という服のデザイン
js
classList.toggle('cursed')  ← 「cursed」という服を着たり脱いだりする

CSSとJSで cursed という名前が一致していることが大切です。

改造しよう

ミッション①:色を変えよう

CSSの .cursed の中の background の値を変えるだけで、色を変えられます。

変える場所はここです:

css
.cursed {
  background: purple !important;  ← ここの「purple」を変える
}

purple の部分を好きな色の英語名に変えてみましょう。

例:red(赤)、blue(青)、green(緑)、orange(オレンジ)


ミッション②:丸にしよう

.cursed の中に1行追加するだけで、箱を丸くできます。

background: purple !important; の行のすぐ下に、下の1行を追加してください。

css
border-radius: 50%;

追加後のCSSはこうなります:

css
.cursed {
  background: purple !important;
  border-radius: 50%;  ← ここを追加した
}

チェックしてみよう

  • [ ] 画面にボタンと箱が表示されている
  • [ ] ボタンを押すと箱の色が変わる
  • [ ] もう一度押すと元に戻る