HTMLタブに下のコードを貼り付けてください。
<button id="castBtn">呪いをかけろ</button>
<div id="box"></div>
CSSタブに下のコードを貼り付けてください。
#box {
width: 100px;
height: 100px;
background: steelblue;
margin-top: 16px;
}
.animated {
animation: henshin 1s infinite alternate;
}
@keyframes henshin {
from {
background: steelblue;
transform: scale(1);
}
to {
background: tomato;
transform: scale(1.5);
}
}
JSタブに下のコードを貼り付けてください。
const btn = document.querySelector('#castBtn');
const box = document.querySelector('#box');
btn.addEventListener('click', function() {
box.classList.add('animated');
});
最初は箱が動かず、ボタンを押したときだけアニメーションが始まることを確認してください。
ここでは animation を .animated というクラスに書いています。
/* #box に直接書いた → ページを開いたら即動く */
#box {
animation: henshin 1s infinite alternate;
}
/* .animated クラスに書いた → クラスが付いたら動く */
.animated {
animation: henshin 1s infinite alternate;
}
最初の #box にはこのクラスが付いていないので、何も動きません。
classList.add('animated'):クラスという「服」を着せるbox.classList.add('animated');
「box に animated というクラスを付ける」という命令です。クラスが付いた瞬間に animation が適用されて、箱が動き始めます。
| 命令 | 動き |
|---|---|
classList.toggle('animated') |
付いていたら外す、外れていたら付ける |
classList.add('animated') |
付けるだけ(外さない) |
classList.remove('animated') |
外すだけ(付けない) |
呪いを解くボタンを押すと、アニメーションが止まるようにしましょう。
ステップ1:HTMLにボタンを追加する
<button id="removeBtn">呪いを解け</button>
ステップ2:JSにボタンの動作を追加する
const removeBtn = document.querySelector('#removeBtn');
removeBtn.addEventListener('click', function() {
box.classList.remove('animated');
});
classList.remove('animated') は「animated クラスを取り外す」命令です。クラスが外れると animation も適用されなくなり、アニメーションが止まります。
classList.add を使っている