uni-app 顶部tabbar切换
完成样式
项目地址:https://gitee.com/jielov/uni-app-tabbar
顶部tabbar代码
copy
<!--顶部导航栏--> <view class="uni_tab_bar"> <view class="uni_swiper_tab order_top"> <block v-for="(tabBar,index) in tabBars" :key="index"> <view class="swiper_tab_list" :class="{'active': tabIndex==tabBar.id}" @tap="toggleTab(tabBar.id)"> {{tabBar.name}} <view class="swiper_tab_line"> </view> </view> </block> </view> </view>
使用v-for 循环 tabbars 来进行标题的加载 v-for="(tabBar,index) in tabBars" :key="index" 。
:key="index" 使得在勾选复选框后不会不随这内容的变动而变动例如在勾选第一个后 添加一个新的内容后后勾线后的复选框不会一直是第一个
:class="{'active': tabIndex==index}" 根据index,动态切换css 样式,tabIndex为初始化第一个选择项,在data里面定义tabIndex: 0,tabBars循环数据,放在data里面。
copy
data(){ return{ tabIndex: 0, //选中标签栏的序列 tabBars: [ {name: '全部',id: '0'}, {name: '待服务',id: '1'}, {name: '服务中',id: '2'}, {name: '已完成',id: '3'}, {name: '已取消',id: '4'}, ], } }
@tap="toggleTab(tabBar.id)" @tab为点击切换事件,放在methods里面。
copy
toggleTab(index) { this.tabIndex = index; },
以下为tab内容区域,css样式在最后面哦~
copy
<view class="order_centext"> <swiper :current="tabIndex" @change="tabChange" class="order_centext"> <swiper-item v-for="(content,index) in tabBars" :key="index"> <view class="swiper_item">{{content.name}}</view> </swiper-item> </swiper> </view>
swiper为滑动切换内容,tabbar滑动切换稍微没那么流畅,有点卡顿。可以选择去掉滑动,只保留点击切换即可。
@change="tabChange" 滑动事件,同样也是放在methods里面
copy
//滑动切换swiper tabChange(e) { const tabIndex = e.detail.current this.tabIndex = tabIndex }
css样式
copy
.order_top { display: flex; align-items: center; justify-content: space-around; background-color: #FFFFFF; } .swiper_tab_list { color: #888888; font-weight: bold; } .uni_tab_bar .active { color: #FEDE33; margin-top: 17rpx; background-color: #FFFFFF; } .active .swiper_tab_line { border-bottom: 4rpx solid #FEDE33; width: 50rpx; margin: auto; margin-top: 17rpx; background-color: #0B9C13; } .uni_swiper_tab { border-bottom: 2rpx solid #eeeeee; margin-bottom: 15rpx; } .order_centext { height: 800rpx; position: fixed; top: 160rpx; left: 0; right: 0; bottom: 0; background-color: #8A6DE9; margin-left: 15rpx; margin-right: 15rpx; }
本文来自博客园,作者:虚乄,转载请注明原文链接:https://www.cnblogs.com/lovejielive/p/14138611.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构