swiperを用いたスライドショー
解決したいこと
現在の状況としましては、ホバーでスライドショーが遅くなることは確認できたのですが、ホバーをやめたさいに元のスピードに戻りません。
ホバーを辞めた時に元のスピードに時差なく戻るようにしたい。
該当するソースコード
javascript
(function() {
let normalSpeed = 5000;
let slowSpeed = 30000;
const mySwiper = new Swiper('.swiper', {
loop: true,
slidesPerView: 'auto',
speed: normalSpeed,
spaceBetween: 10,
allowTouchMove: false,
autoplay: {
delay: 0,
disableOnInteraction: false,
},
});
let getTranslate;
let autoplayWasRunning = true;
document.querySelectorAll('.swiper-slide').forEach(function(slide) {
slide.addEventListener('mouseover', function() {
getTranslate = mySwiper.getTranslate();
mySwiper.setTranslate(getTranslate);
mySwiper.setTransition(0);
autoplayWasRunning = mySwiper.autoplay.running;
mySwiper.autoplay.stop();
setTimeout(function() {
mySwiper.params.speed = slowSpeed;
mySwiper.update();
mySwiper.setTransition(slowSpeed);
mySwiper.autoplay.start();
}, 10);
});
slide.addEventListener('mouseout', function() {
mySwiper.params.speed = normalSpeed;
mySwiper.update();
mySwiper.setTransition(normalSpeed);
if (autoplayWasRunning) {
mySwiper.autoplay.stop();
mySwiper.autoplay.start();
}
});
});
})();
html
<div class="swiper">
<div class="swiper-wrapper">
<div class="swiper-slide slide video-slide">
<img src="./img/bnr-aibase-3.jpg" alt="">
<video src="./img/bnr-aistudio.mp4" loop muted></video>
</div>
<div class="swiper-slide slide video-slide">
<img src="./img/bnr-aibase-cover.png" alt="">
<video src="./img/bnr-cm.mp4" loop muted></video>
</div>
<div class="swiper-slide slide image-slide">
<img src="./img/bnr-aipark-1.jpg" alt="" class="image1">
<img src="./img/bnr-casestudy-1.jpg" alt="" class="image2">
</div>
<div class="swiper-slide slide image-slide">
<img src="./img/bnr-aipark-1.jpg" alt="" class="image1">
<img src="./img/bnr-casestudy-1.jpg" alt="" class="image2">
</div>
<div class="swiper-slide slide image-slide">
<img src="./img/bnr-aipark-1.jpg" alt="" class="image1">
<img src="./img/bnr-casestudy-1.jpg" alt="" class="image2">
</div>
<div class="swiper-slide slide image-slide">
<img src="./img/bnr-aipark-1.jpg" alt="" class="image1">
<img src="./img/bnr-casestudy-1.jpg" alt="" class="image2">
</div>
</div>
</div>