CSSで背景ループのアニメーションを実装する

背景画像を横方向にループで移動させたいという要望がたまにあるので、CSSのkeyframesで実装する方法をメモしておきます。

サンプルコード

#roopに背景画像のアニメーションを設定します。

HTML

<div id="roop"></div>

CSS

#roop {
	width: 100%;
	height: 540px;
	background: url(bg.jpg) repeat-x;
	background-position: 0 0;
	-webkit-animation: bgroop 20s linear infinite;
	animation: bgroop 20s linear infinite;
}
@-webkit-keyframes bgroop {
	from {
		background-position: 0  0;
	}
	to {
		background-position: -1956px 0;
	}
}
@keyframes bgroop {
	from {
		background-position: 0 0;
	}
	to {
		background-position: -1956px 0;
	}
}

今回使用する背景画像の幅が1956pxなので、アニメーション完了時のbackground-positionの値が-1956pxになるように設定しています。
背景画像のループ移動のデモページ
縦方向に移動させたい場合もやり方は同じで、background-positionの2番目の値を設定すればOKです。
 

このエントリーをはてなブックマークに追加

関連記事

2件のコメント

  1. あかね より:

    参考にさせていただきました!
    大変シンプルでわかりやすかったです。
    ありがとうございました。

    • cly7796.net より:

      あかねさん
      コメントありがとうございます。
      お役に立てたようでよかったです。

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年4月
 123456
78910111213
14151617181920
21222324252627
282930