【JavaScript】クリックで文字がふわっと表示される|フェードインアニメーションのサンプルコード

クリックすると文字がふわっと現れるフェードインのサンプルコードです。
アニメーションの基本的な使い方を試したいときや、ちょっとした演出を加えたいときの参考用としてメモしています。
コピペしてそのまま動作確認できます。

完成形

フェードインアニメーションの完成形です。
ボタンを押して動きをチェックしてください。

フェードイン

コード

コピペで使えるHTML・CSS・JavaScriptのサンプルです。

HTML

<div class="wrap">
  <p id="fadeIn" class="fadeIn">フェードイン</p>
  <button id="fadeInBtn" class="fadeInBtn">フェードイン</button>
</div>

CSS

.wrap {
  width: 90%;
  max-width: 500px;
  height: 400px;
  margin: 0 auto;
  padding: 10px;
  border: 1px solid #ccc;
  font-size: 18px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.fadeIn {
  font-size: 2em;
  margin: 0 0 60px;
  opacity: 0;
  transform: scale(0);
  transition: opacity 1s, transform 1s;
}
.fadeIn.show {
  transform: none;
  opacity: 1;
}
.fadeInBtn {
  display: block;
  width: 80%;
  min-height: 60px;
  margin: 0 auto;
  padding: 10px;
  font-size: 1.2em;
  color: #fff;
  background-color: #3f5dff;
  border: 2px solid #100600;
  cursor: pointer;
}
.fadeInBtn:hover {
  opacity: 0.9;
}

.fadeIn

  • テキストを非表示(透明かつ縮小)にしておく初期状態。
  • opacity: 0 → 完全に透明。
  • transform: scale(0) → サイズがゼロ(見えない)。
  • transition → 表示・非表示の切り替えを1秒かけてアニメーションで行う。

.fadeIn.show

  • .fadeInshow クラスが追加された状態(=表示状態)。
  • opacity: 1 → 不透明になる(見えるようになる)。
  • transform: none → 元のサイズに戻る。

JavaScript

const fadeIn = document.querySelector('#fadeIn');
const fadeInBtn = document.querySelector('#fadeInBtn');
fadeInBtn.addEventListener('click', () => {
  fadeIn.classList.toggle('show');
  fadeInBtn.textContent = '';
  fadeInBtn.setAttribute('disabled', 'true');
  setTimeout(() => {
    if (fadeIn.classList.contains('show')) {
      fadeInBtn.textContent = 'フェードアウト';
    } else {
      fadeInBtn.textContent = 'フェードイン';
    }
    fadeInBtn.removeAttribute('disabled');
  }, 1000);
});

✅ 全体の目的:

ボタンをクリックすると、テキストがふわっと表示されたり消えたりする「フェードイン/フェードアウト」のアニメーションを切り替えます。
ボタンの表示文字もそれに合わせて変わります。

🔍 コードの説明:

const fadeIn = document.querySelector('#fadeIn');

→ #fadeIn というIDの要素(=テキスト)を取得して、fadeIn という名前で使えるようにします。

const fadeInBtn = document.querySelector('#fadeInBtn');

#fadeInBtn というIDのボタン要素を取得して、fadeInBtn として使えるようにします。

fadeInBtn.addEventListener('click', () => {

→ ボタンがクリックされたときに、以下の処理を実行します。


ボタンがクリックされたときの動き:

fadeIn.classList.toggle('show');

#fadeIn 要素に show クラスをつけたり外したりします(=表示・非表示の切り替え)。

fadeInBtn.textContent = '';
fadeInBtn.setAttribute('disabled', 'true');

→ ボタンの文字を一時的に消して、ボタンを一時的に無効(連打防止)にします。

setTimeout(() => {
  if (fadeIn.classList.contains('show')) {
    fadeInBtn.textContent = 'フェードアウト';
  } else {
    fadeInBtn.textContent = 'フェードイン';
  }
  fadeInBtn.removeAttribute('disabled');
}, 1000);

→ 1秒(1000ミリ秒)後に、

  • 今表示されているかどうかを確認し、ボタンの文字を「フェードイン」か「フェードアウト」に切り替えます。
  • 同時に、ボタンの無効状態を解除して、再び押せるようにします。

まとめ

  • ボタンを押すたびにテキストがふわっと出たり消えたりする。
  • ボタンの表示も「フェードイン」「フェードアウト」と自動で切り替わる。
  • 1秒間のアニメーション中はボタンが無効になるので、連続で押されないようになっている。

初心者でも動きを想像しやすいシンプルなスクリプトです。

Web制作を学ぶならUdemy

HTML・CSS・JavaScriptの基本から本格的なWebアプリ制作まで学べます。

【世界で90万人が受講】Web Developer Bootcamp(日本語版) icon

※このリンクは広告です(アフィリエイトリンク)

📚 おすすめのUdemy講座について詳しく
👉 独学でWebアプリが作れる!初心者におすすめのUdemy講座【体験レビューあり】

タイトルとURLをコピーしました