ホームページ  >  記事  >  ウェブフロントエンド  >  CSS3 を使用して画像カルーセル効果を実現する方法の例

CSS3 を使用して画像カルーセル効果を実現する方法の例

PHPz
PHPzオリジナル
2023-04-06 16:44:561228ブラウズ

インターネットの発展に伴い、Web デザインはユーザー エクスペリエンスにますます注目するようになりました。画像カルーセルは、Web デザイン、特に商用 Web サイトでも一般的な要素となっており、画像カルーセルは製品、ブランド、イベントなどの情報を表示する重要な方法となっています。この記事では、CSS3を使用して簡単な画像カルーセル効果を実現する方法を紹介します。

  1. HTML 構造

まず、基本的な HTML 構造を準備する必要があります。ページ内にコンテナを作成し、その中に複数の画像を追加します。ここでは、ul タグと li タグを使用して画像カルーセルの画像リストを作成します。各画像は li タグです。コードは次のとおりです。

<div class="slider">
  <ul>
    <li><img src="image1.jpg"></li>
    <li><img src="image2.jpg"></li>
    <li><img src="image3.jpg"></li>
  </ul>
</div>
  1. CSS スタイル

次に、CSS を使用して画像リストのスタイルとアニメーション効果を制御する必要があります。まず、ul を相対位置に設定して、絶対位置を使用して li タグの位置を制御できるようにします。

.slider ul {
  position: relative;
  overflow: hidden;
}

次に、li タグを絶対配置に設定し、各 li タグの幅と高さを設定します。

.slider ul li {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  opacity: 0;
  transition: opacity .5s ease-in-out;
}

このコードでは、各 li タグの初期透明度を 0 に設定し、画像の切り替えをより自然にするためにトランジション効果を設定します。

  1. CSS3 アニメーションを使用して画像カルーセル効果を作成する

HTML 構造と CSS スタイルを準備したら、CSS3 アニメーションを使用して画像カルーセル効果を作成できます。

まず、各 li タグに異なるアニメーション遅延時間を設定する必要があります。これは、アニメーション効果が開始される前に各画像を一定期間保持できるようにし、視覚的なカルーセル効果を作成するためです。コードは次のとおりです。

.slider ul li:nth-child(1) {
  animation: bannermove 15s linear infinite 0s;
}

.slider ul li:nth-child(2) {
  animation: bannermove 15s linear infinite 5s;
}

.slider ul li:nth-child(3) {
  animation: bannermove 15s linear infinite 10s;
}

上記のコードでは、各 li タグに「bannermove」という名前のアニメーションを設定し、アニメーション時間を 15 秒に設定し、線形アニメーション、無限ループ、およびそれぞれ異なる遅延を使用します。カルーセル効果を形成するために時間 (0 秒、5 秒、10 秒) が設定されます。

次に、アニメーション効果自体を作成する必要があります。 @keyframes ルールを使用してアニメーションを定義します。コードは次のとおりです。

@keyframes bannermove {
  0% {
    opacity: 0;
  }
  4% {
    opacity: 1;
  }
  24% {
    opacity: 1;
  }
  28% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}

上記のコードでは、アニメーションを 5 つのステージに分割します。最初の 0% 段階は完全に透明で、徐々に不透明になり、4% 段階に達すると画像が完全に表示されます。次に、24% の段階では、画像はまだ不透明であり、ピーク点に達します。その後、28% の段階で完全に見えなくなるまで徐々に不透明になり、100% の段階でアニメーションが停止し、再び完全に透明になります。

完全なコードは次のとおりです:

<html>
<head>
<style>

.slider {
  width: 100%;
  height: 500px;
  position: relative;
  overflow: hidden;
}

.slider ul {
  list-style-type: none;
  position: relative;
  overflow: hidden;
}

.slider ul li {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  opacity: 0;
  transition: opacity .5s ease-in-out;  
}

.slider ul li:nth-child(1) {
  animation: bannermove 15s linear infinite 0s;
}

.slider ul li:nth-child(2) {
  animation: bannermove 15s linear infinite 5s;
}

.slider ul li:nth-child(3) {
  animation: bannermove 15s linear infinite 10s;
}

@keyframes bannermove {
  0% {
    opacity: 0;
  }
  4% {
    opacity: 1;
  }
  24% {
    opacity: 1;
  }
  28% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}

</style>
</head>
<body>

<div class="slider">
  <ul>
    <li><img src="http://placekitten.com/400/400"></li>
    <li><img src="http://placekitten.com/g/400/400"></li>
    <li><img src="http://placekitten.com/400/400"></li>
  </ul>
</div>

</body>
</html>

上記は、CSS3 を使用して画像カルーセルを実装する内容全体です。最高のユーザー エクスペリエンスを実現するために、必要に応じて画像カルーセル スタイルとアニメーション効果を調整できます。

以上がCSS3 を使用して画像カルーセル効果を実現する方法の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。