非表示の要素をアニメーション表示する - 要素をフェードイン表示する - CSS

CSSで非表示の要素をアニメーション表示するコードを紹介します。

概要

CSSのスタイルでdisplayをnoneからblockに設定すると、クラスの設定直後にスタイルが反映され、アニメーションが有効になりません。display を利用してフェードインのアニメーションを実装するには、Animation プロパティを利用します。

プログラム例

コード

下記のコードを記述します。
AnimationShow.css
@keyframes showop {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.Frame {
  display: none;
  background-color:#0094ff;
  color:#FFFFFF;
}

.Frame.show {
  display: block;
  animation: showop 2s linear 0s;
}
AnimationShow.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title></title>
  <link rel="stylesheet" href="AnimationShow.css" />
  <script type="text/javascript">
    function onButtonClick() {
      var elem = document.getElementById('frame1');
      elem.classList.add('show');
    }
  </script>
</head>
<body>
  <input id="Button1" type="button" value="button" onclick="onButtonClick();" />
  <div id="frame1" class="Frame">
    コンテンツです。<br />
    コンテンツです。<br />
    コンテンツです。<br />
  </div>
</body>
</html>

解説

初期状態ではdisplayプロパティの値はnoneに設定され、要素は非表示の状態です。ボタンのクリックにより、指定した要素(frame1)に show サブクラスを設定します。 show サブクラスでは animation プロパティを設定しアニメーションを実行します。
アニメーションは透明度を0から1に変化させることで、フェードインのアニメーションを実装します。

実行結果

上記のHTMLファイルをWebブラウザで表示します。下図のページが表示されます。[button]をクリックします。


[button]をクリックすると枠がフェードインアニメーションで表示されます。



アニメーションが終わると枠が表示された状態になります。

著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。
掲載日: 2019-07-09
iPentec all rights reserverd.