微信小程序页面功能-----标签切换
一、页面布局
首先我们需要布局出标签切换的页面,下面不多描述直接上代码
1、html部分
<!-- 标签页标题 -->
<view class="tob">
<view class="tab-item">音乐推荐器</view>
<view class="tab-item">播放器</view>
<view class="tab-item">播放列表</view>
</view>
<!-- 内容区域 -->
<view class="content">
<swiper>
<swiper-item>
<include src="info.wxml" />
</swiper-item>
<swiper-item>
<include src="play.wxml" />
</swiper-item>
<swiper-item>
<include src="playlist.wxml" />
</swiper-item>
</swiper>
</view>
<!-- 底部播放器 -->
<view class="player"></view>
下面是三个标签页面设置
(1)info.html
<view style="background: #ccc; color: #000; height: 100%;">
info
</view>
(2)play.wxml
<view style="background: #ddd; color: #000; height: 100%;">
play
</view>
(3)playlist.wxml
<view style="background: #eee; color: #000; height: 100%;">
playlist
</view>
2、css部分
page {
display: flex;
flex-direction: column;
background: #17181a;
color: #ccc;
height: 100%;
}
.tab{
display: flex;
}
.tab-item{
flex: 1;
font-size: 10pt;
text-align: center;
line-height: 72rpx;
border-bottom: 6rpx solid #eeeeee;
}
.content{
flex: 1;
}
.content > swiper{
height: 100%;
}
.player{
background: #222;
border-top: 1px solid #252525;
height: 112rpx;
}
下面是我们的页面效果图
二、实现效果
修改pages/index/index.wxml文件中的tab区域,为3个tab-item绑定事件并设置data-item属性
<view class="tab-item" bindtab="changeItem" data-item="0">音乐推荐器</view>
<view class="tab-item" bindtab="changeItem" data-item="1">播放器</view>
<view class="tab-item" bindtab="changeItem" data-item="2">播放列表</view>
在上述代码中,data-item的值表示swiper组件中对应的swiper-item索引
接下来修改content区域,为swiper组件中的current属性绑定变量item
<!-- 内容区域 -->
<view class="content">
<swiper current="{{item}}">
完成上面代码后,在tab-item的changeItem事件中,将item的值设为data-item的值即可实现切换到对应的标签页。修改page/index/index.js文件,将item和changeItem增加到代码中
Page({
data:{
item:0,
},
changeItem:function(e){
this.setData({
item:e.target.dataset.item
})
}
})
切换标签页后还需要改变当前标签页对应的tab-item的样式,将文本颜色和底部的线条颜色设为红色,表示当前标签页处于活跃状态。下面通过判断变量tab的值,来为当前活跃的data-item增加一个active样式,具体代码如下
<view class="tab-item {{item==0?'active':''}}" bindtap="changeItem" data-item="0">音乐推荐器</view>
<view class="tab-item {{item==1?'active':''}}" bindtap="changeItem" data-item="1">播放器</view>
<view class="tab-item {{item==2?'active':''}}" bindtap="changeItem" data-item="2">播放列表</view>
接下来在pages/index/index.wxss中编辑active样式,具体代码如下
.tab-item.active{
color: #c25b5b;
border-bottom-color:#c25b5b ;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话