微信小程序写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
        })
    }
},
原文地址:https://www.cnblogs.com/lguow/p/9148804.html