初心者でもコピペで簡単実装できる画像の無限ループスライダー。
画像のスライダーだけでなく、ロゴのスライダーでも活用できる。
ライブラリに依存しないコードだからこそ、どんな環境でも動き、軽量で安定な無限スライダーアニメーション。
HTML
<div class="ugkImgSlider">
<ul class="ugkImgSlider__lists">
<li class="ugkImgSlider__item">
<img src="/animation/wp-content/uploads/2026/01/cat05.jpg" alt="">
</li>
<li class="ugkImgSlider__item">
<img src="/animation/wp-content/uploads/2026/01/cat04.jpg" alt="">
</li>
<li class="ugkImgSlider__item">
<img src="/animation/wp-content/uploads/2026/01/cat03.jpg" alt="">
</li>
<li class="ugkImgSlider__item">
<img src="/animation/wp-content/uploads/2026/01/cat02.jpg" alt="">
</li>
<li class="ugkImgSlider__item">
<img src="/animation/wp-content/uploads/2026/01/cat01.jpg" alt="">
</li>
</ul>
</div>
CSS
.ugkImgSlider {
width: 100%;/* コンテナのサイズ指定 */
overflow: hidden;
}
.ugkImgSlider__lists {
list-style: none;
display: flex;
column-gap: 20px;/* 画像間の隙間 */
width: fit-content;/* 中身に合わせて幅を自動調整 */
}
.ugkImgSlider__lists.animating {
animation: imgSlider 30s linear infinite;/* 早さはここで調整 */
}
@keyframes imgSlider {
0% {
transform: translateX(0);
}
100% {
transform: translateX(-50%);
}
}
.ugkImgSlider__lists:hover {
animation-play-state: paused;
}
.ugkImgSlider__item img {
height: 150px; /* 高さを統一(幅は自動) */
width: auto;
max-width: max-content;
}
JS
document.addEventListener('DOMContentLoaded',() =>{
const sliderContainer = document.querySelector('.ugkImgSlider');
const sliderLists = sliderContainer.querySelector('.ugkImgSlider__lists');
// 元のli要素たちを取得
const sliderItems = sliderLists.innerHTML;
// リストの中身を複製して後ろに追加する
sliderLists.insertAdjacentHTML('beforeend',sliderItems);
// 複製が終わってからアニメーションクラスを付与
sliderLists.classList.add('animating');
});

コメント