微信小程序实现点击导航条切换页面


Posted in Javascript onNovember 19, 2020

本文实例为大家分享了微信小程序实现点击导航条切换页面的具体代码,供大家参考,具体内容如下

我录制了个gif如下,黄色部分是不可以滑动的,蓝色部分可以滑动。

微信小程序实现点击导航条切换页面

代码解说:

  • 首先我在js自定义了navState参数用于判断导航的当前状态,
  • 定义了data-index用于js中动态修改导航的当前状态,
  • nav-switch-style为选择导航条时的样式,
  • 不可滑动视图切换很简单,用wx:if判断状态显示相应页就好了,
  • 滑动页视图切换要用到swiper和 swiper-item,
  • 用bindchang方法监听滑块,current 改变时会触发 change 事件(还有个bindanimationfinish方法监听也是可以用的,详细请看官方文档)
  • 动态的绑定了current滑块的index,这样就可以实现点击导航条滑块跟着滚动,
  • 相反的,当滑动滑块时,就可以根据current的值来动态修改导航的状态了。

wxml代码:

<!-- 导航条 -->
<view class="nav">
 <view bindtap="navSwitch" data-index="0" class="{{navState==0 ? 'nav-switch-style':''}}">页面一</view>
 <view bindtap="navSwitch" data-index="1" class="{{navState==1 ? 'nav-switch-style':''}}">页面二</view>
 <view bindtap="navSwitch" data-index="2" class="{{navState==2 ? 'nav-switch-style':''}}">页面三</view>
</view>
<!-- 不可滑动页 -->
<view>
 <view wx:if="{{navState==0}}" class="style-default">1</view>
 <view wx:elif="{{navState==1}}" class="style-default">2</view>
 <view wx:else="{{navState==2}}" class="style-default">3</view>
</view>
<!-- 滑动页 -->
<swiper bindchange="bindchange" current="{{navState}}">
 <block>
 <swiper-item>
 <view class="style-roll">
 <text>左右可滑动1</text>
 </view>
 </swiper-item>
 <swiper-item>
 <view class="style-roll">
 <text>左右可滑动2</text>
 </view>
 </swiper-item>
 <swiper-item>
 <view class="style-roll">
 <text>左右可滑动3</text>
 </view>
 </swiper-item>
 </block>
</swiper>

js代码:

Page({
 data: {
 navState: 0,//导航状态
 },
 //监听滑块
 bindchange(e) {
 // console.log(e.detail.current)
 let index = e.detail.current;
 this.setData({
 navState:index
 })
 },
 //点击导航
 navSwitch: function(e) {
 // console.log(e.currentTarget.dataset.index)
 let index = e.currentTarget.dataset.index;
 this.setData({
 navState:index
 })
 },

 /**
 * 生命周期函数--监听页面加载
 */
 onLoad: function(options) {

 },
})

wxss代码:

.nav{
 display: flex;
 justify-content: space-around;
 padding: 20rpx;
 background-color: rgb(129, 241, 55);
 font-size: 30rpx;
}
.nav-switch-style{
 color: snow;
}
.style-default{
 background-color: rgb(247, 229, 130);
 padding: 100rpx 0;
 text-align: center;
}
.style-roll{
 background-color: rgb(130, 177, 247);
 padding: 100rpx 0;
 text-align: center;
}

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js有关元素内容操作小结
Dec 20 Javascript
动态改变div的z-index属性的简单实例
Aug 08 Javascript
js动画效果制件让图片组成动画代码分享
Jan 14 Javascript
JavaScript中var关键字的使用详解
Aug 14 Javascript
基于javascript代码实现通过点击图片显示原图片
Nov 29 Javascript
使用JQuery实现智能表单验证功能
Mar 08 Javascript
基于JavaScript实现树形下拉框
Aug 10 Javascript
Bootstrap 源代码分析(未完待续)
Aug 17 Javascript
Vuex 在Vue 组件中获得Vuex 状态state的方法
Aug 27 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
Sep 03 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
Jun 01 Javascript
JavaScript原始值与包装对象的详细介绍
May 11 Javascript
详解Vue的mixin策略
Nov 19 #Vue.js
微信小程序自定义底部弹出框功能
Nov 18 #Javascript
微信小程序实现底部弹出框
Nov 18 #Javascript
微信小程序实现弹幕墙(祝福墙)
Nov 18 #Javascript
一篇超完整的Vue新手入门指导教程
Nov 18 #Vue.js
基于Cesium绘制抛物弧线
Nov 18 #Javascript
vue3.0实现点击切换验证码(组件)及校验
Nov 18 #Vue.js
You might like
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
PHP实现数组根据某个单元字段排序操作示例
2018/08/01 PHP
使用PHP开发留言板功能
2019/11/19 PHP
键盘控制事件应用教程大全
2006/11/24 Javascript
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
window.open不被拦截的实现代码
2012/08/22 Javascript
js获取url中&quot;?&quot;后面的字串方法
2014/05/15 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
javascript实现任务栏消息提示的简单实例
2016/05/31 Javascript
JavaScript数据结构学习之数组、栈与队列
2017/05/02 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
探讨Vue.js的组件和模板
2017/10/27 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
微信小程序switch开关选择器使用详解
2018/01/31 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
[05:37]DOTA2-DPC中国联赛 正赛 Elephant vs iG 选手采访
2021/03/11 DOTA
python合并文本文件示例
2014/02/07 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
2018/05/04 Python
numpy concatenate数组拼接方法示例介绍
2019/05/27 Python
python 计算积分图和haar特征的实例代码
2019/11/20 Python
使用OpenCV去除面积较小的连通域
2020/07/05 Python
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
客房主管岗位职责
2013/12/09 职场文书
葬礼司仪主持词
2014/03/31 职场文书
学生会竞选演讲稿纪检部
2014/08/25 职场文书
2014年电厂工作总结
2014/12/04 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
医院志愿者活动总结
2015/05/06 职场文书
立项申请报告范本
2015/05/15 职场文书
2015年档案室工作总结
2015/05/23 职场文书
初中物理教学反思
2016/02/19 职场文书
MYSQL 表的全面总结
2021/11/11 MySQL
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL