微信小程序写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 }) } },