TourCard小程序:如何实现循环滑动Tab列表?

来源:Golang编程网作者:小菜鸟头衔:草根站长
导读:本期聚焦于小伙伴创作的《TourCard小程序:如何实现循环滑动Tab列表?》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《TourCard小程序:如何实现循环滑动Tab列表?》有用,将其分享出去将是对创作者最好的鼓励。

在TourCard小程序的页面开发中,循环滑动Tab列表能够让用户在浏览分类内容时获得更流畅的体验,避免滑动到最后一个Tab后无法继续操作的尴尬。实现这个功能需要结合小程序的视图组件和事件逻辑,下面逐步讲解具体实现方法。

TourCard小程序:如何实现循环滑动Tab列表?

核心实现思路

循环滑动Tab列表的核心逻辑是:当滑动到列表末尾时,自动跳转到列表开头;当滑动到列表开头时,向后滑动自动跳转至列表末尾。我们可以通过swiper组件的循环属性,结合Tab列表的数据索引控制来实现这个效果。

基础页面结构搭建

首先需要在WXML文件中搭建Tab列表和对应内容区域的结构,Tab部分使用scroll-view实现横向滚动,内容部分使用swiper组件实现滑动切换,同时开启swiper的循环属性。

<view class="tab-container">
  <!-- 横向滚动的Tab列表 -->
  <scroll-view 
    class="tab-scroll" 
    scroll-x 
    scroll-into-view="tab-{{currentIndex}}" 
    scroll-with-animation
  >
    <view class="tab-list">
      <view 
        wx:for="{{tabList}}" 
        wx:key="id" 
        id="tab-{{index}}" 
        class="tab-item {{currentIndex === index ? 'active' : ''}}" 
        bindtap="onTabTap" 
        data-index="{{index}}"
      >
        {{item.name}}
      </view>
    </view>
  </scroll-view>

  <!-- 循环滑动的内容区域 -->
  <swiper 
    class="content-swiper" 
    current="{{currentIndex}}" 
    circular 
    bindchange="onSwiperChange"
  >
    <swiper-item wx:for="{{tabList}}" wx:key="id">
      <view class="content-item">
        这是{{item.name}}对应的内容区域
      </view>
    </swiper-item>
  </swiper>
</view>

样式配置

接下来添加对应的WXSS样式,让Tab列表横向排列,内容区域占满剩余空间,同时设置选中Tab的高亮样式。

.tab-container {
  display: flex;
  flex-direction: column;
  height: 100vh;
}

.tab-scroll {
  white-space: nowrap;
  height: 80rpx;
  background-color: #f5f5f5;
}

.tab-list {
  display: inline-flex;
  height: 100%;
  align-items: center;
  padding: 0 20rpx;
}

.tab-item {
  padding: 0 30rpx;
  height: 100%;
  line-height: 80rpx;
  font-size: 28rpx;
  color: #666;
}

.tab-item.active {
  color: #1890ff;
  font-weight: bold;
  border-bottom: 4rpx solid #1890ff;
}

.content-swiper {
  flex: 1;
}

.content-item {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  font-size: 32rpx;
  color: #333;
}

逻辑处理实现

在JS文件中定义Tab列表数据,处理Tab点击和swiper滑动切换的逻辑,同时保证Tab选中状态和swiper当前索引同步。

Page({
  data: {
    // Tab列表数据
    tabList: [
      { id: 1, name: '推荐' },
      { id: 2, name: '周边游' },
      { id: 3, name: '国内游' },
      { id: 4, name: '出境游' },
      { id: 5, name: '自驾游' },
      { id: 6, name: '邮轮游' }
    ],
    // 当前选中的Tab索引
    currentIndex: 0
  },

  // Tab点击事件
  onTabTap(e) {
    const index = e.currentTarget.dataset.index
    this.setData({
      currentIndex: index
    })
  },

  // swiper滑动切换事件
  onSwiperChange(e) {
    const current = e.detail.current
    this.setData({
      currentIndex: current
    })
  }
})

注意事项

  • 开启swipercircular属性后,滑动到末尾会自动跳转到开头,滑动到开头向后滑会自动跳转到末尾,天然支持循环滑动效果。
  • scroll-viewscroll-into-view属性需要对应Tab项的id,保证选中Tab时列表会自动滚动到可视区域。
  • 如果Tab数量较少,循环滑动的视觉效果可能不明显,可以适当增加Tab数量或者调整swiper的切换动画时长优化体验。
  • 如果需要在TourCard小程序中对接后端接口动态获取Tab列表,只需要在onLoad生命周期中请求数据并赋值给tabList即可,其他逻辑不需要修改。
实际开发中可以根据TourCard的业务需求,给Tab项添加图标、角标等元素,也可以给内容区域添加对应的请求逻辑,加载不同Tab下的列表数据。

TourCard循环滑动Tab小程序swiper组件修改时间:2026-06-16 18:06:40

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。