所以我想做这个 swiper.js 轮播,它从右到左线性滑动,鼠标悬停后它会停止。我使用了这个功能,效果非常好:
$(".swiper-container3").hover(function() {
(this).swiper.autoplay.stop();
}, function() {
(this).swiper.autoplay.start();
});
如果我的滑动器初始化函数中未定义速度参数,则它会在悬停后停止(但前提是最近的滑块位于旋转木马的中心)。 如何强制 swiper.js 停止使用上述函数,但不等待滑块之一位于中心? 其余代码
const enableSwiper3 = function(){
mySwiper3 = new Swiper ('#swiper-container3', {
loop: true,
slidesPerView: "auto",
spaceBetween: 10,
centeredSlides: true,
a11y: true,
keyboardControl: true,
grabCursor: true,
freeMode: false,
pagination: {
el: '#swiper-pagination3',
},
paginationClickable: true,
breakpoints: {
400: {
slidesPerView: 'auto',
spaceBetween: 20,
loop: true
},
767: {
autoplay: {
delay: 5000,
disableOnInteraction: true,
pauseOnMouseEnter: true,
},
speed: 10000,
}
}
});
mySwiper3.autoplay.start();
}
我还想降低它的速度,这样整个滑块的线性速度非常慢,悬停后它就停止了。以下网站的示例:https://www.intercom.com/(人们正在谈论部分)。
为了流畅的速度使用CSS
.swiper-wrapper {
-webkit-transition-timing-function:linear!important;
-o-transition-timing-function:linear!important;
transition-timing-function:linear!important;
}
要立即停止滑块,您可以尝试此->
$(".swiper-container3").each(function(elem, target){
var test = target.swiper;
$(this).hover(function() {
test.setProgress(0, 0);
}, function() {
test.setProgress(0, 5000);
});
});