【CSSアニメーション】無限ループで流れる画像

この記事では、CSSのアニメーションを使って無限ループで流れる画像を実装するプログラミングコードを解説していきます。

目次

完成形

最初に完成形を見ていきます。

3枚の画像が右から左に向かって流れています。

See the Pen cssanimation02 by aqua (@aqua-programdiary) on CodePen.

HTMLコーディング

まずは、HTMLのコーディングをしていきます。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Document</title>
</head>
<body>
    <div class="slide-animation">
        <ul class="slide-contents">
            <li><img src="https://aqua-programdiary.com/wp-content/uploads/2023/08/image1.jpg" alt=""></li>
            <li><img src="https://aqua-programdiary.com/wp-content/uploads/2023/08/image2.jpg" alt=""></li>
            <li><img src="https://aqua-programdiary.com/wp-content/uploads/2023/08/image3.jpg" alt=""></li>
        </ul>
        <ul class="slide-contents">
            <li><img src="https://aqua-programdiary.com/wp-content/uploads/2023/08/image1.jpg" alt=""></li>
            <li><img src="https://aqua-programdiary.com/wp-content/uploads/2023/08/image2.jpg" alt=""></li>
            <li><img src="https://aqua-programdiary.com/wp-content/uploads/2023/08/image3.jpg" alt=""></li>
        </ul>
        <ul class="slide-contents">
            <li><img src="https://aqua-programdiary.com/wp-content/uploads/2023/08/image1.jpg" alt=""></li>
            <li><img src="https://aqua-programdiary.com/wp-content/uploads/2023/08/image2.jpg" alt=""></li>
            <li><img src="https://aqua-programdiary.com/wp-content/uploads/2023/08/image3.jpg" alt=""></li>
        </ul>
    </div>
</body>
</html>
  1. <!DOCTYPE html> ... </html>:
    • HTML ドキュメントの開始と終了を示します。
  2. <head> ... </head>:
    • ドキュメントのヘッダーセクションです。
    • meta 要素は文字コードとビューポート設定を指定します。
    • link 要素で外部のスタイルシート(style.css)を読み込みます。
  3. <body> ... </body>:
    • ドキュメントの本体部分です。
  4. <div class="slide-animation"> ... </div>:
    • スライドアニメーションのコンテナ要素です。このコンテナ内でスライドを表示します。
  5. <ul class="slide-contents"> ... </ul>:
    • 画像スライドのコンテンツを含む ul 要素です。
    • li 要素内に画像が配置されます。
  6. <li><img src="..."></li>:
    • 各スライドの画像を表示する li 要素です。
    • img 要素の src 属性に画像の URL を指定しています。

CSSコーディング

CSSのコーディングをして完成です。

@charset 'utf-8';

img {
    width: 100%;
}

li {
    list-style: none;
}

ul {
    margin: 0;
    padding: 0;
}

.slide-animation {
    display: flex;
    gap: 10px;
    overflow: hidden;
}

.slide-animation li {
    width: 300px;
}

.slide-contents {
    display: flex;
    gap: 10px;
    animation: loopAnimation 30s linear infinite;
}

@keyframes loopAnimation {
    0% {
    transform: translate(0%);
    }
    100% {
    transform: translate(-100%);
    }
}

  1. @charset 'utf-8';
    • 文字コードをUTF-8に設定します。
  2. img { ... }:
    • すべての画像要素に適用されるスタイルです。画像をコンテナの幅に合わせて拡大表示します。
  3. li { ... }:
    • li 要素(スライドコンテンツの各アイテム)に適用されるスタイルです。デフォルトのリストスタイルを無効にします。
  4. ul { ... }:
    • ul 要素に適用されるスタイルです。マージンとパディングをゼロに設定します。
  5. .slide-animation { ... }:
    • スライドアニメーションのコンテナに適用されるスタイルです。
    • display: flex でフレックスコンテナを作成し、子要素間のギャップを設定します。
    • overflow: hidden でコンテナ外の要素を隠します。
  6. .slide-animation li { ... }:
    • スライドアニメーションの各スライドコンテンツ要素に適用されるスタイルです。
    • 各アイテムの幅を300pxに設定します。
  7. .slide-contents { ... }:
    • 各スライドコンテンツのコンテナに適用されるスタイルです。
    • display: flex でフレックスコンテナを作成し、子要素間のギャップを設定します。
    • animation プロパティでキーフレームアニメーション loopAnimation を30秒かけて無限に実行します。
  8. @keyframes loopAnimation { ... }:
    • スライドアニメーションのためのキーフレームアニメーションです。
    • 0% から 100% まで、コンテナ内のコンテンツを左に移動させてループさせます。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次