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


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 相关文章推荐
javascript 模式设计之工厂模式详细说明
May 10 Javascript
JavaScript实现url地址自动检测并添加URL链接示例代码
Nov 12 Javascript
使用POST方式弹出窗口的两种方法示例介绍
Jan 29 Javascript
浅析tr的隐藏和显示问题
Mar 05 Javascript
详解JavaScript语法对{}处理的坑爹之处
Jun 05 Javascript
jQuery对于显示和隐藏等常用状态的判断方法
Dec 13 Javascript
浅谈document.write()输出样式
May 07 Javascript
Bootstrap每天必学之按钮(一)
Nov 24 Javascript
复杂的javascript窗口分帧解析
Feb 19 Javascript
一系列Bootstrap导航条使用方法分享
Apr 29 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
Dec 13 Javascript
详解使用React制作一个模态框
Mar 14 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
使用php4加速网络传输
2006/10/09 PHP
php删除与复制文件夹及其文件夹下所有文件的实现代码
2013/01/23 PHP
cnblogs TagCloud基于jquery的实现代码
2010/06/11 Javascript
JQuery动画和停止动画实例代码
2013/03/01 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
理解javascript中的严格模式
2016/02/01 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
2016/12/08 Javascript
AngularJS全局警告框实现方法示例
2017/05/18 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
python调用cmd命令行制作刷博器
2014/01/13 Python
用python实现的线程池实例代码
2018/01/06 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
Python加载带有注释的Json文件实例
2018/05/23 Python
Python实现的简单排列组合算法示例
2018/07/04 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
解决python明明pip安装成功却找不到包的问题
2019/08/28 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
2021/02/25 Python
介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
2014/03/05 面试题
ruby如何进行集成操作?Ruby能进行多重继承吗?
2013/10/16 面试题
幼儿园小班教师寄语
2014/04/03 职场文书
安全生产目标责任书
2014/04/14 职场文书
本科生就业推荐信
2014/05/19 职场文书
学生打架检讨书
2014/10/20 职场文书
教师党员学习群众路线心得体会
2014/11/04 职场文书
好媳妇事迹材料
2014/12/24 职场文书
整改通知书格式
2015/04/22 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
校园广播站开场白
2015/06/01 职场文书
导游词之千岛湖
2019/09/23 职场文书