我的 Swiper.js 悬停时不会停止(仅在添加速度参数后)

问题描述 投票:0回答:1

所以我想做这个 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/(人们正在谈论部分)。

javascript slider carousel swiper.js
1个回答
0
投票

为了流畅的速度使用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);
  });
});
© www.soinside.com 2019 - 2024. All rights reserved.