微信小程序底部栏实现:课程、班级、我的页面切换
可以的,以下是一个简单的微信小程序页面,包含底部栏和两个tab页面:课程和班级,和我的。
注:以下代码仅供参考,具体实现方式可能与实际需求不完全相同。
<!--index.wxml-->
<view class='container'>
<view class='tab-panel {{activeIndex == 0 ? 'active' : ''}}'>
<view class='title'>课程</view>
<!--课程内容-->
</view>
<view class='tab-panel {{activeIndex == 1 ? 'active' : ''}}'>
<view class='title'>班级</view>
<!--班级内容-->
</view>
<view class='tab-panel {{activeIndex == 2 ? 'active' : ''}}'>
<view class='title'>我的</view>
<!--我的内容-->
</view>
<view class='tab-bar'>
<view class='tab-item {{activeIndex == 0 ? 'active' : ''}}' bindtap='handleTabClick' data-index='0'>
<image class='icon' src='{{activeIndex == 0 ? '/images/tab-course-active.png' : '/images/tab-course.png'}}'></image>
<text class='text'>课程</text>
</view>
<view class='tab-item {{activeIndex == 1 ? 'active' : ''}}' bindtap='handleTabClick' data-index='1'>
<image class='icon' src='{{activeIndex == 1 ? '/images/tab-class-active.png' : '/images/tab-class.png'}}'></image>
<text class='text'>班级</text>
</view>
<view class='tab-item {{activeIndex == 2 ? 'active' : ''}}' bindtap='handleTabClick' data-index='2'>
<image class='icon' src='{{activeIndex == 2 ? '/images/tab-my-active.png' : '/images/tab-my.png'}}'></image>
<text class='text'>我的</text>
</view>
</view>
</view>
/*index.wxss*/
.container {
display: flex;
flex-direction: column;
height: 100vh;
overflow: hidden;
}
.tab-panel {
flex: 1;
display: none;
overflow-y: scroll;
}
.tab-panel.active {
display: block;
}
.title {
font-size: 24px;
font-weight: bold;
padding: 20px;
text-align: center;
}
.tab-bar {
display: flex;
justify-content: space-around;
height: 80px;
border-top: 1px solid #e5e5e5;
background-color: #fff;
}
.tab-item {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100%;
width: 33.33%;
font-size: 24px;
color: #333;
}
.tab-item.active {
color: #007aff;
}
.icon {
width: 36px;
height: 36px;
margin-bottom: 8px;
}
//index.js
Page({
data: {
activeIndex: 0
},
handleTabClick(event) {
const index = event.currentTarget.dataset.index;
this.setData({
activeIndex: index
});
}
});
在上述代码中,我们首先定义了一个container容器,它包含三个子元素:tab-panel(tab页面)、tab-bar(底部栏)和activeIndex(当前激活的tab页面)。tab-panel通过display控制显示/隐藏,activeIndex通过handleTabClick方法响应底部栏的点击事件,切换当前激活的tab页面。
在底部栏中,我们使用了三个tab-item,分别对应课程、班级和我的页面。每个tab-item包含一个icon和一个text,icon根据当前激活的tab页面切换不同的图片,text显示标签文本。通过bindtap绑定handleTabClick方法,响应点击事件,并通过data-index传递当前点击的tab-item的索引。
至于课程、班级和我的页面的具体内容,可以根据实际需求进行开发。
原文地址: http://www.cveoy.top/t/topic/nZup 著作权归作者所有。请勿转载和采集!