ロード時の CSS3 遷移アニメーション? 質問する

ロード時の CSS3 遷移アニメーション? 質問する

Javascript を使用せずに、ページの読み込み時に CSS3 遷移アニメーションを使用することは可能ですか?

これは私が望んでいるようなものですが、ページが読み込まれると次のようになります。

画像スライダー.html

これまでに発見したこと

  • CSS3 transition-delay は、要素への効果を遅らせる方法です。ホバー時にのみ機能します。
  • CSS3 キーフレームはロード時に動作しますが、非常に遅いです。そのため、役に立ちません。
  • CSS3 の遷移は十分に高速ですが、ページの読み込み時にアニメーション化されません。

ベストアンサー1

JavaScript を使用せずにページの読み込み時にCSSアニメーションを実行できます。CSS3キーフレームを使用するだけです。

例を見てみましょう...

以下は、 CSS3のみを使用してナビゲーション メニューが所定の位置にスライドするデモです。

@keyframes slideInFromLeft {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}

header {  
  /* This section calls the slideInFromLeft animation we defined above */
  animation: 1s ease-out 0s 1 slideInFromLeft;
  
  background: #333;
  padding: 30px;
}

/* Added for aesthetics */ body {margin: 0;font-family: "Segoe UI", Arial, Helvetica, Sans Serif;} a {text-decoration: none; display: inline-block; margin-right: 10px; color:#fff;}
<header>
  <a href="#">Home</a>
  <a href="#">About</a>
  <a href="#">Products</a>
  <a href="#">Contact</a>
</header>

分解してみましょう...

ここで重要な部分は、キーフレーム アニメーションと呼ばれるものですslideInFromLeft

@keyframes slideInFromLeft {
    0% {
        transform: translateX(-100%);
    }
    100% {
        transform: translateX(0);
    }
}

...これは基本的に、「最初はヘッダーが画面の左端から全幅はみ出し、最後には所定の位置に収まる」という意味です。

2 番目の部分では、そのアニメーションを呼び出しますslideInFromLeft

animation: 1s ease-out 0s 1 slideInFromLeft;

上記は簡略版ですが、わかりやすくするために詳細版を以下に示します。

animation-duration: 1s; /* the duration of the animation */
animation-timing-function: ease-out; /* how the animation will behave */
animation-delay: 0s; /* how long to delay the animation from starting */
animation-iteration-count: 1; /* how many times the animation will play */
animation-name: slideInFromLeft; /* the name of the animation we defined above */

コンテンツをスライドインしたり、特定の領域に注目させたりなど、さまざまな興味深いことを行うことができます。

W3C の見解は次のとおりです。

おすすめ記事