<img src="…"> CSSアニメーションで画像を横スクロール無限ループ | BLOG|ホームページ制作 Brick Plan【ブリックプラン】

2020.07.18

HTML・CSS

CSSアニメーションで画像を横スクロール無限ループ

CSSアニメーションで画像を横スクロール無限ループさせます。まずhtmlのコードです。同じ画像を2つ配置して、クラス名loop_wrapのdivタグで囲います。

<div class="loop_wrap">
	<img src="images/loop.jpg" alt=""><img src="images/loop.jpg" alt="">
</div>

次にCSSのコードです。loop_wrapのdivタグにdisplay: flexを指定して画像を横並びにします。また、overflow: hiddenを指定してdivタグをはみ出す部分は非表示にします。

CSSアニメーションは1つ目の画像と2つ目の画像で、それぞれ分けて指定します。animationプロパティでショートハンドで指定しています。

■1つ目の画像
animation-name: loop アニメーションの名前を指定
animation-duration: 120s アニメーション開始から終了までの所要時間
animation-timing-function: linear アニメーションのイージングを指定
animation-delay: -60s アニメーションが開始するまでの遅延時間
animation-iteration-count: infinite アニメーションのループ回数を指定

■2つ目の画像
animation-name: loop2 アニメーションの名前を指定
animation-duration: 120s アニメーション開始から終了までの所要時間
animation-timing-function: linear アニメーションのイージングを指定
animation-iteration-count: infinite アニメーションのループ回数を指定

.loop_wrap{
	display: flex;
	overflow: hidden;
}
.loop_wrap img:first-child {
	animation: loop 120s linear -60s infinite;
}
.loop_wrap img:last-child {
	animation: loop2 120s linear infinite;
}
@keyframes loop {
	0% {
		transform: translateX(100%);
	}
	to {
		transform: translateX(-100%);
	}
}
@keyframes loop2 {
	0% {
		transform: translateX(0);
	}
	to {
		transform: translateX(-200%);
	}
}

ポイントは1つ目の画像だけanimation-delay: -60sを指定している個所です。animation-duration: 120sの半分の秒数です。animation-delayでマイナス値を指定した場合、変化はすぐに始まりますが指定した秒数だけアニメーションが進んだ状態で開始されます。つまり初回だけアニメーションを60秒進めて画像の初期位置を調整しています。2回目以降のアニメーションにanimation-delayは適用されません。これで1つ目の画像の後に2つ目の画像がつながって無限ループするアニメーションになります。

関連記事

2025.08.08

HTML・CSS

fit-contentのセンタリングを利用した横幅可変のグラデーション背景

width: fit-contentを利用してテキストをセンタリングし、グラデーションの背景を表示します。デモページはこちら 以下のhtml構造で確認します。d…

2021.07.06

HTML・CSS

Photoshopのドロップシャドウをbox-shadowプロパティで適用

Photoshopのレイヤースタイルで作成したドロップシャドウを、box-shadowプロパティで適用します。デモページはこちら box-shadowプロパティ…

2022.07.15

HTML・CSS

擬似要素::before、::afterと:hoverの組み合わせ

CSSの擬似要素::before、::afterに:hoverでホバーエフェクトを適用する場合、以下のように:hoverを先、::before、::afterを…

2024.09.25

HTML・CSS

marginの相殺について

兄弟要素と親子要素で発生するmarginの相殺について確認します。また相殺が発生しない例外についても確認します。デモページはこちら 共通のCSSは以下になります…

2020.08.30

HTML・CSS

Font Awesomeの使い方

Font Awesomeの公式サイトで使用したいアイコンフォントを選びます。Iconsのページでアイコンフォントの一覧が確認できます。有料版と無料版があり有料版…

上に戻る