【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>
<!DOCTYPE html> ... </html>:- HTML ドキュメントの開始と終了を示します。
<head> ... </head>:- ドキュメントのヘッダーセクションです。
meta要素は文字コードとビューポート設定を指定します。link要素で外部のスタイルシート(style.css)を読み込みます。
<body> ... </body>:- ドキュメントの本体部分です。
<div class="slide-animation"> ... </div>:- スライドアニメーションのコンテナ要素です。このコンテナ内でスライドを表示します。
<ul class="slide-contents"> ... </ul>:- 画像スライドのコンテンツを含む
ul要素です。 - 各
li要素内に画像が配置されます。
- 画像スライドのコンテンツを含む
<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%);
}
}
@charset 'utf-8';- 文字コードをUTF-8に設定します。
img { ... }:- すべての画像要素に適用されるスタイルです。画像をコンテナの幅に合わせて拡大表示します。
li { ... }:li要素(スライドコンテンツの各アイテム)に適用されるスタイルです。デフォルトのリストスタイルを無効にします。
ul { ... }:ul要素に適用されるスタイルです。マージンとパディングをゼロに設定します。
.slide-animation { ... }:- スライドアニメーションのコンテナに適用されるスタイルです。
display: flexでフレックスコンテナを作成し、子要素間のギャップを設定します。overflow: hiddenでコンテナ外の要素を隠します。
.slide-animation li { ... }:- スライドアニメーションの各スライドコンテンツ要素に適用されるスタイルです。
- 各アイテムの幅を300pxに設定します。
.slide-contents { ... }:- 各スライドコンテンツのコンテナに適用されるスタイルです。
display: flexでフレックスコンテナを作成し、子要素間のギャップを設定します。animationプロパティでキーフレームアニメーションloopAnimationを30秒かけて無限に実行します。
@keyframes loopAnimation { ... }:- スライドアニメーションのためのキーフレームアニメーションです。
- 0% から 100% まで、コンテナ内のコンテンツを左に移動させてループさせます。


