
JavaScriptで、トップページに使える全面ループスライダーを作成
トップページのメインで背景に全面スライダーを配置しているサイトがよくあります。今回は、JavaScriptで、全面ループスライダーを作成する方法を紹介します。
全面サイズで表示されます。3秒毎に画像がスライドで入れ替わります。

全面サイズで表示

3秒毎に画像がスライドで入れ替わり
コード
<ul id="slide-slideconatner">
<li class="slide-slide" >
<img src="images/music006.jpg" alt="">
</li>
<li class="slide-slide" >
<img src="images/music007.jpg" alt="">
</li>
<li class="slide-slide" >
<img src="images/music008.jpg" alt="">
</li>
<li class="slide-slide" >
<img src="images/music009.jpg" alt="">
</li>
<li class="slide-slide" >
<img src="images/music010.jpg" alt="">
</li>
</ul>
#slide-slideconatner{
width:100vw;
height:100svh;
overflow: hidden;
background-repeat: no-repeat;
background-position: center center;
opacity: 0.8;
background-size: cover;
position:relative;
}
#slide-slideconatner .slide-slide{
width: 100%;
height: 100%;
object-fit: cover;
position:absolute;
visibility: hidden;
}
#slide-slideconatner ul li.slide-slide:first-child{
opacity: 0;
}
#slide-slideconatner .slide-slide img{
width: 100%;
height: 100%;
object-fit: cover;
}
const slideSlide = document.querySelectorAll('#slide-slideconatner .slide-slide');
window.addEventListener('load', () => {
for (let i = 0; i < slideSlide.length; i++) {
const times = slideSlide.length;
if(i === times -1){
slideSlide[i].animate(
{
visibility: 'visible',
translate:['100vw 0', 0],
zIndex: '30',
},
{
duration: 1000,
delay:3000 * i,
easing: 'ease',
fill: 'forwards',
}
);
slideSlide[i].animate(
{
zIndex: '-1'
},
{
dulation: 0,
delay:3000 + 3000 * i,
fill: 'forwards',
}
);
}else if(i === 0){
slideSlide[i].animate(
{
visibility: 'visible',
filter: ['blur(10px)', 'blur(0)'],
opacity:[0,1],
},
{
duration: 1000,
easing: 'ease',
fill: 'forwards',
}
);
slideSlide[i].animate(
{
visibility: 'hidden',
},
{
dulation: 0,
delay:4000,
fill: 'forwards',
}
);
}else{
slideSlide[i].animate(
{
visibility: 'visible',
translate:['100vw 0', 0],
},
{
duration: 1000,
delay:3000 * i,
easing: 'ease',
fill: 'forwards',
}
);
slideSlide[i].animate(
{
visibility: 'hidden',
},
{
dulation: 0,
delay:4000 + 3000 * i,
fill: 'forwards',
}
);
}
setInterval(() => {
if(i === times -1){
slideSlide[i].animate(
{
visibility: 'visible',
translate:['100vw 0', 0],
zIndex: '30',
},
{
duration: 1000,
delay:3000 * i,
easing: 'ease',
fill: 'forwards',
}
);
slideSlide[i].animate(
{
zIndex: '-1'
},
{
dulation: 0,
delay:3000 + 3000 * i,
fill: 'forwards',
}
);
}else{
slideSlide[i].animate(
{
visibility: 'visible',
translate:['100vw 0', 0],
},
{
duration: 1000,
delay:3000 * i,
easing: 'ease',
fill: 'forwards',
}
);
slideSlide[i].animate(
{
visibility: 'hidden',
},
{
dulation: 0,
delay:4000 + 3000 * i,
fill: 'forwards',
}
);
}
},3000 * times);
}
});