【微信小程序】实现页面tab切换效果

简介: 通过以下的方法实现tab与页面内容联动。

目录


前言


本次效果展示


一、如何实现页面tab


1.使用内置组件scroll-view


2.实现点击时出现的背景样式


3.使用scroll-into-view,实现点击时自动滚动


前言

本次主要内容是介绍页面tab的开发,如何实现tab与页面内容联动呢?


本次效果展示

微信图片_20220927201648.gif



一、如何实现页面tab


1.使用内置组件scroll-view

如下图所示,我们需要使用到红色框框中的属性,此属性可也实现滚动

微信图片_20220927201706.png



这里有一个大坑,不管是使用scroll-x还是scroll-y遍历数据都是出现在左边一数列(这里我们只关注scroll-x、scroll-y)

<scroll-view scroll-x="true" class='scroll-view-t' :scroll-into-view="scrollinto">
<view v-for="(item,index) in 20 " :key='index' :id="'tab'+index" 
  :class="currentIndex==index?'active':''" @click="changeTab(index)">
  {{item}}
</view>
</scroll-view>
<scroll-view scroll-y="true" :style="'height:'+scrollH+'px'">
  <view v-for="(item,index) in 100 " :key='index'>
  {{item}}
  </view>
</scroll-view>

微信图片_20220927201757.png


我们只能通过样式来改变它,让它横过来


.scroll-view-t view {
  display: inline-block;
  font-size: 32rpx !important;
  margin: 0 15rpx;
  }
  .scroll-view-t {
  white-space: nowrap;
  height: 88rpx;
  line-height: 88rpx;
  }

微信图片_20220927201812.png


2.实现点击时出现的背景样式


这里我们需要定义一个默认的索引currentIndex,在通过点击事件所传出去的索引进行判断,从而获得当前所点击的对象给到样式,样式我们就用三元表达式判断赋予样式,如下点击方法

changeTab(index) { //nabbar栏点击切换
    // if (this.currentIndex === index) return
    this.currentIndex = index
    // this.scrollinto = 'tab' + index
    // if (this.currentIndex < 10) {
    //  this.scrollinto = 'tab0'
    // }
    },


如下是绑定的点击事件和三元表达式判断赋予样式,其中背景样式提前写好了

<view v-for="(item,index) in 20 " :key='index' :id="'tab'+index" 
  :class="currentIndex==index?'active':''" @click="changeTab(index)">
  {{item}}
</view>


不过现在只实现了通过点击样式发生改变,感觉实现了tab切换,眼下要解决点击时tab这个导航条也要自己滚动起来,不能一边手动滚动,然后再点击吧


3.使用scroll-into-view,实现点击时自动滚动


使用它的目的主要是,在点解tab时可以实现,你向那个方向点,他就往那个方向滚动,不过在点回去的时候,就有坑了,需要对其作出判断

微信图片_20220927201839.png



阅读文档很难理解对吧,我在这里说说我的理解,这里是想要我们通过在scroll-view中属性scroll-into-view绑定一个元素,此元素还要获得id,此id还不能已数字开头,此id就是移动的关键,需要绑定,所遍历内容的索引,从而实现往哪里滚动,不过想点回去就需要进行判断


如下代码中在scroll-view,使用scroll-into-view绑定了一个自己定义的空元素scrollinto


在v-for遍历后获得了索引,id就通过索引进行了绑定,拼接了以tab开头

<scroll-view scroll-x="true" class='scroll-view-t' :scroll-into-view="scrollinto">
    <view v-for="(item,index) in 20 " :key='index' :id="'tab'+index" 
    :class="currentIndex==index?'active':''" @click="changeTab(index)">
    {{item}}
    </view>
</scroll-view>


实现点击滚动很简单,要滚动回去就要判断了,如下代码,只要当前的this.scrollinto = 'tab' + index就能实现点击就滚动,回去是就要判断当前点击的缩影,手动赋值,给一个最好的区间,这样效果更好

changeTab(index) { //nabbar栏点击切换
    if (this.currentIndex === index) return
    this.currentIndex = index
    this.scrollinto = 'tab' + index
    if (this.currentIndex < 10) {
      this.scrollinto = 'tab0'
    }
    },




相关文章
|
1月前
|
小程序 前端开发 开发者
小程序的页面如何布局?
【10月更文挑战第16天】小程序的页面如何布局?
46 1
|
1月前
|
小程序
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
421 1
|
2月前
|
JSON 小程序 前端开发
微信小程序的目录结构及页面结构的说明
本文详细介绍了微信小程序的目录结构、页面组成部分以及项目的全局配置文件,阐述了小程序的宿主环境和运行机制,包括小程序启动和页面渲染的过程。
微信小程序的目录结构及页面结构的说明
|
3月前
|
小程序
微信小程序多种跳转页面方式
微信小程序多种跳转页面方式
|
2月前
|
小程序 JavaScript API
微信小程序开发学习之页面导航(声明式导航和编程式导航)
这篇文章介绍了微信小程序中页面导航的两种方式:声明式导航和编程式导航,包括如何导航到tabBar页面、非tabBar页面、后退导航,以及如何在导航过程中传递参数和获取传递的参数。
微信小程序开发学习之页面导航(声明式导航和编程式导航)
|
2月前
|
小程序 前端开发 生物认证
微信小程序如何将一个按钮放到页面的最底下?
微信小程序如何将一个按钮放到页面的最底下?
277 5
|
2月前
|
JSON 小程序 JavaScript
微信小程序页面事件,下拉刷新事件和上拉触底事件
这篇文章介绍了微信小程序中如何实现下拉刷新和上拉触底事件,包括开启下拉刷新、配置下拉刷新样式、监听下拉刷新事件,以及监听上拉触底事件和配置上拉触底的距离。
|
3月前
|
小程序 开发者
万能的微信小程序个人主页:商城系统个人主页、外卖系统个人主页、购票系统个人主页等等【全部源代码分享+页面效果展示+直接复制粘贴编译即可】
这篇文章分享了四个不同应用场景下的微信小程序个人主页的源代码和页面效果展示,包括商城系统、外卖系统、医疗挂号和电影购票系统的个人主页。提供了完整的页面布局和样式代码,允许开发者直接复制粘贴并根据自己的项目需求进行简单的改造使用。
万能的微信小程序个人主页:商城系统个人主页、外卖系统个人主页、购票系统个人主页等等【全部源代码分享+页面效果展示+直接复制粘贴编译即可】
|
1月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
508 7
|
1月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
611 1

热门文章

最新文章

下一篇
无影云桌面