微信小程序写tab切换

微信小程序之tab切换效果,如图:

最近在学习微信小程序并把之前的公司app搬到小程序上,挑一些实现效果记录一下(主要是官方文档里没说的,毕竟官方文档只是介绍功能)

.wxml代码:

<view class="body">
  <view class="nav bc_white">
    <view class="{{selected?'red':'default'}}" bindtap="selected">系统提醒</view>
    <view class="{{selected1?'red':'default'}}" bindtap="selected1">优惠活动</view>
  </view>
  <view class="{{selected?'show':'hidden'}}">for system</view>
  <view class="{{selected1?'show':'hidden'}}">for activity</view>
</view>

 

.wxss代码:

page{}
.nav{width:100%;height:100rpx;display:flex;flex-direction:row;}
.default{line-height:100rpx;text-align:center;flex:1;border-right:1px solid gainsboro;color:#000;font-weight:bold;font-size:28rpx;}
.red{line-height:100rpx;text-align:center;color:#fc5558;flex:1;border-right:1px solid gainsboro;font-weight:bold;font-size:28rpx;}
.show{display:block;text-align:center;line-height:200rpx;}
.hidden{display:none;text-align:center;line-height:200px;}

 

.js代码:

复制代码
Page({
    data:{
        selected:true,
        selected1:false
        },
    selected:function(e){
        this.setData({
            selected1:false,
            selected:true
        })
    },
    selected1:function(e){
        this.setData({
            selected:false,
            selected1:true
        })
    }
})
复制代码

 

 

方法二:纯数据驱动

index.wxml

<text  data-current="0" class="{{currentTab == 0? 'active' : ''}}">消息</text>
<text  data-current="1" class="{{currentTab == 1 ? 'active' : ''}}">通知</text>
<view hidden="{{isShow}}">消息</view>
<view hidden="{{!isShow}}">消息</view>

index.js

复制代码
data: {
isShow: true,
currentTab: 0
}
switcher: function (e) {
    if (this.data.currentTab == e.target.dataset.current) {
        return false
    } else {
        var showMode = e.target.dataset.current == 0;
        this.setData({
            currentTab: e.target.dataset.current,
            isShow: showMode
        })
    }
},
复制代码

 

posted @   奔跑的太阳花  阅读(389)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示