You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swiper使用鼠标滚轮滑动后无法恢复autoplay自动播放问题求助

问题根因

Swiper 内置的disableOnInteraction配置仅覆盖触摸、拖拽类交互,鼠标滚轮触发的滑动属于独立的交互逻辑,不受该配置控制,因此滚轮操作结束后autoplay不会自动恢复。

解决方案

监听Swiper的滚轮事件,搭配防抖逻辑,在滚轮操作完全停止后手动重启autoplay即可,修改后的JS代码如下:

// 防抖函数,避免滚轮频繁触发时多次调用重启方法
function debounce(func, delay = 300) {
  let timer = null;
  return function(...args) {
    clearTimeout(timer);
    timer = setTimeout(() => func.apply(this, args), delay);
  }
}

const restartAutoplay = debounce(() => {
  gallery_slider.autoplay.start();
})

const gallery_slider = new Swiper ('.gallery-slider', {
    slidesPerView: 2.5,
    loopedSlides: 3,
    autoplay: {
        delay: 0,
        disableOnInteraction: false,
    },
    speed: 10000,
    loop: true,
    touchRatio: .3,
    spaceBetween: 20,
    effect: 'slide',
    simulateTouch: true,
    freeMode: {
        enabled: true
    },
    mousewheel: {
        sensitivity: .5,
    },
    // 新增事件监听
    on: {
      // 每次触发滚轮事件时调用防抖后的重启方法
      mousewheel: function() {
        restartAutoplay();
      }
    }
});

如果觉得重启等待时间太长或者太短,可以调整防抖函数的delay参数(单位为毫秒)即可。

内容的提问来源于stack exchange,提问作者Flavio RT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 06:54:04