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


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 相关文章推荐
根据判断浏览器类型屏幕分辨率自动调用不同CSS的代码
Feb 22 Javascript
javascript window对象属性整理
Oct 24 Javascript
javascript中关于break,continue的特殊用法与介绍
May 24 Javascript
JS操作Cookies的小例子
Oct 15 Javascript
使用javascript实现ListBox左右全选,单选,多选,全请
Nov 07 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
Nov 14 Javascript
JavaScript中window.showModalDialog()用法详解
Dec 18 Javascript
js实现两点之间画线的方法
May 12 Javascript
vue.js实现的绑定class操作示例
Jul 06 Javascript
Angular7创建项目、组件、服务以及服务的使用
Feb 19 Javascript
Vue+Express实现登录注销功能的实例代码
May 05 Javascript
ElementUI 修改默认样式的几种办法(小结)
Jul 29 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排序算法(冒泡排序,快速排序)
2012/10/09 PHP
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
php数值计算num类简单操作示例
2020/05/15 PHP
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
JavaScript的document对象和window对象详解
2010/12/30 Javascript
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
Dom 学习总结以及实例的使用介绍
2013/04/24 Javascript
js实现的map方法示例代码
2014/01/13 Javascript
在JavaScript中处理字符串之fontcolor()方法的使用
2015/06/08 Javascript
Actionscript与javascript交互实例程序(修改)
2016/09/22 Javascript
基于JavaScript实现带缩略图的轮播效果
2017/01/12 Javascript
初探nodeJS
2017/01/24 NodeJs
layui table设置前台过滤转义等方法
2018/08/17 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
vue.js this.$router.push获取不到params参数问题
2020/03/03 Javascript
Python实现对比不同字体中的同一字符的显示效果
2015/04/23 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
2018/06/11 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
Python 如何定义匿名或内联函数
2020/08/01 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
电焊工岗位职责
2014/03/06 职场文书
竞聘书模板
2014/03/31 职场文书
教师读书活动总结
2014/05/07 职场文书
毕业生学校推荐信范文
2014/05/21 职场文书
法院授权委托书格式
2014/09/28 职场文书
收入及婚姻状况证明
2014/11/20 职场文书
2016公司年会通知范文
2015/04/25 职场文书
教师创先争优承诺书
2015/04/27 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
2015年党风廉政建设个人总结
2015/08/18 职场文书
python ConfigParser库的使用及遇到的坑
2022/02/12 Python
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL
DE1103使用报告
2022/04/05 无线电