直播系统搭建,实现页面多级来回切换支持滑动和点击操作
直播系统搭建,实现页面多级来回切换支持滑动和点击操作
通过触发pagechange1方法中的事件对currentIndex来进行赋值,又通过currentIndex的改变使前端wxml对应更改,这个部分对滑动和点击的操作都一样,无非就是使currentIndex对应到各自的位置,通过数字来决定位置
1 | <br> //滑动<br> pagechange1: function (ee) {<br> if ("touch" === ee.detail.source) {<br> let currentPageIndex = this.data.currentIndex;<br> currentPageIndex = (currentPageIndex + 1) % 2;<br> <br> this.setData({<br> currentIndex: currentPageIndex,<br> })<br> }<br> },<br>//点击tab时触发<br> titleClick: function (e) {<br> this.setData({<br> //拿到当前索引并动态改变<br> currentIndex: e.currentTarget.dataset.idx<br> })<br> }, |
这个部分完整代码如下:
wxml
1 | <br><view><br> <!-- Tab布局 --><br> <view class = 'navBox' ><br> <view class = 'titleBox' bindtap= 'titleClick' data-idx= '0' ><br> <text class = "{{0 == currentIndex ? 'fontColorBox' : ''}}" >安卓</text><br> <hr class = "{{0 == currentIndex ? 'lineBox' : 'notLineBox'}}" /><br> </view><br> <view class = 'titleBox' bindtap= 'titleClick' data-idx= '1' ><br> <text class = "{{1 == currentIndex ? 'fontColorBox1' : ''}}" >苹果</text><br> <hr class = "{{1 == currentIndex ? 'lineBox' : 'notLineBox'}} " /><br> </view><br> </view><br> <!-- 内容布局 --><br> <swiper class = 'swiperTtemBox' bindchange= 'pagechange1' current= '{{currentIndex}}' ><br> <swiper-item class = 'swiperTtemBox' ><br> <view>内容1</view><br> </swiper-item><br> <swiper-item class = 'swiperTtemBox' ><br> <view>内容2</view><br> </swiper-item><br> </swiper><br></view> |
wxss
1 | <br>Page {<br> /* 全局样式 */ <br> background: rgb(244, 245, 249);<br> height: 100%;<br> position: fixed;<br>}<br>.fontColorBox,<br>.fontColorBox1 {<br> /* 文字默认颜色 */ <br> color: black;<br>}<br>.navBox {<br> /* 顶部tab盒子样式 */ <br> width: 100%;<br> height: 108rpx;<br> background: white;<br> display: flex;<br> align-items: center;<br> justify-content: center;<br>}<br>.navBox view:last-child {<br> /* 最后一个tab标题的样式 */ <br> padding-left: 20%;<br>}<br>.titleBox {<br> /* 未选中文字的样式 */ <br> color: rgb(168, 170, 175);<br> font-size: 30rpx;<br> display: flex;<br> flex-direction: column;<br> align-items: center;<br>}<br>.lineBox,.notLineBox{<br> /* 选中及未选中底线共同样式 */ <br> width: 32rpx;<br> height: 8rpx;<br>}<br>.lineBox {<br> /* 选中底线样式 */ <br> background: rgb(43, 44, 45);<br> margin-top: 16rpx;<br> border-radius: 4rpx;<br>}<br>.notLineBox {<br> /* 未选中底线样式 */ <br> background: transparent;<br>}<br>.swiperTtemBox {<br> /* 底部内容样式 */ <br> height: 100vh;<br> overflow: scroll;<br> margin: 12rpx 0rpx;<br> background: white;<br> font-size: 28rpx;<br>} |
js
1 | <br> const app = getApp()<br>Page({<br> data: {<br> currentIndex: 0, //默认第一个<br> },<br> pagechange1: function (ee) {<br> if ("touch" === ee.detail.source) {<br> let currentPageIndex = this.data.currentIndex;<br> currentPageIndex = (currentPageIndex + 1) % 2;<br> <br> this.setData({<br> currentIndex: currentPageIndex,<br> })<br> }<br> },<br> //点击tab时触发<br> titleClick: function (e) {<br> this.setData({<br> //拿到当前索引并动态改变<br> currentIndex: e.currentTarget.dataset.idx<br> })<br> },<br>}) |
以上就是直播系统搭建,实现页面多级来回切换支持滑动和点击操作, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2021-11-09 一对一视频源码,登录时输入密码时的显示密码按钮
2021-11-09 小视频源码,java使用Thumbnails压缩图片
2021-11-09 app直播源码,软件登录时的背景图更改