今回は、CSSで画像を無限横スクロールさせる方法についてまとめました。
Webページのfooter付近に配置されているスポンサー企業のアイコン画像でよく実装されています。
【CSS】画像を無限横スクロールさせる方法
デモサイトはこちら。
See the Pen
Untitled by ゆーじろー (@yuji64)
on CodePen.
HTML
<div class="scroll">
<ul class="scroll-list">
<li>
<img src="https://yujiromx.com/wp-content/uploads/2022/06/icon_113280_256.png" alt="">
</li>
<li>
<img src="https://yujiromx.com/wp-content/uploads/2022/06/icon_113240_256.png" alt="">
</li>
<li>
<img src="https://yujiromx.com/wp-content/uploads/2022/06/icon_113230_256.png" alt="">
</li>
<li>
<img src="https://yujiromx.com/wp-content/uploads/2022/06/icon_113150_256.png" alt="">
</li>
<li>
<img src="https://yujiromx.com/wp-content/uploads/2022/06/icon_113120_256.png" alt="">
</li>
</ul>
<ul class="scroll-list">
<li>
<img src="https://yujiromx.com/wp-content/uploads/2022/06/icon_113280_256.png" alt="">
</li>
<li>
<img src="https://yujiromx.com/wp-content/uploads/2022/06/icon_113240_256.png" alt="">
</li>
<li>
<img src="https://yujiromx.com/wp-content/uploads/2022/06/icon_113230_256.png" alt="">
</li>
<li>
<img src="https://yujiromx.com/wp-content/uploads/2022/06/icon_113150_256.png" alt="">
</li>
<li>
<img src="https://yujiromx.com/wp-content/uploads/2022/06/icon_113120_256.png" alt="">
</li>
</ul>
</div>
親要素scrollの中に子要素scroll-listを入れ子にします。
scroll-listを2つ用意した理由は、横スクロールした際に画像が途中で途切れないようにするためです。
CSS
@keyframes loop {
from {
transform: translateX(0);
}
to {
transform: translateX(-100%);
}
}
.scroll {
margin: 20px;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
height: 180px;
overflow-y: hidden;
border: 2px solid;
padding: 30px;
max-width: 500px;
}
.scroll-list {
display: flex;
align-items: center;
animation: loop infinite linear 10s both;
li {
min-width: 150px;
}
}
無限横スクロールにするポイントは、親要素scrollをoverflow-y: hidden;ではみ出した画像を非表示にし、画像を横並びにします。
そしてkeframesで指定したCSSアニメーションで無限スクロールさせたらOKです。
あと画像の幅が指定されていないとスクロールが途中で切れたりするので、画像の幅も指定しておくと良いでしょう。
まとめ
以上が、CSSで画像を無限横スクロールさせる方法でした。



