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

SwiperJS如何检测滑动方向?单slide循环场景下获取滑动方向方法

SwiperJS滑动方向检测及单Slide loop模式问题解决

索引固定返回1的原因

单Slide开启loop属性时,Swiper会自动在原Slide前后各复制1个Slide实现无缝循环效果,实际渲染的Slide总数为3,默认激活中间索引为1的Slide,因此直接读取activeIndex始终返回1属于loop模式的正常表现,无需调整Swiper配置,通过方向判断自行维护日期变量即可。

滑动方向获取方法

Swiper没有内置swipeLeft/swipeRight这类专属方向事件,但可以通过slideChange事件配合实例内置属性直接拿到滑动方向:

  • 监听slideChange事件,读取Swiper实例的swipeDirection属性,返回值为next代表左滑(切换下一个),返回值为prev代表右滑(切换上一个),示例代码如下:
const calendarSwiper = new Swiper('.swiper-container', {
  loop: true,
  // 其余你的原有配置
  on: {
    slideChange: function () {
      // this就是当前Swiper实例
      const swipeDir = this.swipeDirection
      if (swipeDir === 'next') {
        // 左滑逻辑:加载后一天的备忘内容
      } else if (swipeDir === 'prev') {
        // 右滑逻辑:加载前一天的备忘内容
      }
      // 数据请求完成后直接更新当前Slide的内容即可
    }
  }
})

额外优化建议

不需要依赖Swiper的索引值管理日期顺序,你可以单独维护一个当前展示日期的全局变量,每次滑动时根据方向对该变量做增减操作,再对应拉取数据渲染即可,完全避开loop模式下的索引异常问题。

内容的提问来源于stack exchange,提问作者Jongwoo Lee

相关产品推荐
方舟 Agent Plan

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

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