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

Swiper滑块:开启Mousewheel Control时,最后一屏允许页面滚动

解决方案

当然可以实现这个需求,最简单的方式是利用Swiper Mousewheel模块内置的releaseOnEdges配置项,它能让滑块处于边缘(首屏/末屏)时,将鼠标滚轮事件传递给页面,从而允许继续滚动页面。

修改后的滑块配置代码

let swiper = new Swiper(".mySwiper", {
  speed: 600,
  direction: 'vertical',
  parallax: false,
  pagination: {
    el: ".swiper-pagination",
    clickable: true,
  },
  navigation: {
    nextEl: ".swiper-button-next",
    prevEl: ".swiper-button-prev",
  },
  mousewheel: {
    sensitivity: 1,
    releaseOnEdges: true // 添加这个配置项
  }
});

原理说明

当releaseOnEdges设为true时:

  • 滑块滚动到最后一屏(垂直方向的最底部),继续向下滚动鼠标滚轮,事件会被释放给页面,页面就能正常滚动
  • 同理,滑块在第一屏时,向上滚动滚轮也会触发页面滚动

如果需要更精细的控制(比如只允许末屏向下滚动页面,首屏不允许向上滚动),可以通过监听Swiper的事件手动切换mousewheel的启用状态:

let swiper = new Swiper(".mySwiper", {
  // 原有配置...
  mousewheel: {
    sensitivity: 1,
    enabled: true
  }
});

// 监听滑块到达末屏事件
swiper.on('reachEnd', function() {
  this.mousewheel.disable();
});

// 监听滑块离开末屏事件
swiper.on('slideChange', function() {
  if (!this.isEnd) {
    this.mousewheel.enable();
  }
});

内容的提问来源于stack exchange,提问作者Igor Proshyn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 05:25:44