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


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 相关文章推荐
鼠标移动到一张图片时变为另一张图片
Dec 05 Javascript
如何快速的呈现我们的网页的技巧整理
Jul 01 Javascript
javascript基础第一章 JavaScript与用户端
Jul 22 Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
Dec 17 Javascript
JQUERY简单按钮轮换选中效果实现方法
May 07 Javascript
PHP捕捉异常中断的方法
Oct 24 Javascript
JavaScript定时器实现的原理分析
Dec 06 Javascript
javascript基于原型链的继承及call和apply函数用法分析
Dec 15 Javascript
详解Vue 多级组件透传新方法provide/inject
May 09 Javascript
获取layer.open弹出层的返回值方法
Aug 20 Javascript
Vue实现本地购物车功能
Dec 05 Javascript
vue项目实现图片上传功能
Dec 23 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
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
Memcached常用命令以及使用说明详解
2013/06/27 PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
2014/03/12 PHP
老版本PHP转义Json里的特殊字符的函数
2015/06/08 PHP
Symfony2联合查询实现方法
2016/03/18 PHP
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
2016/10/31 PHP
PHP匿名函数(闭包函数)详解
2019/03/22 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
js 事件小结 表格区别
2007/08/13 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
每天一篇javascript学习小结(Array数组)
2015/11/11 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
2015/12/26 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
js鼠标跟随运动效果
2017/03/11 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
2018/07/10 Javascript
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
2018/12/05 jQuery
vue点击按钮动态创建与删除组件功能
2019/12/29 Javascript
python实现得到一个给定类的虚函数
2014/09/28 Python
Python实现模拟登录及表单提交的方法
2015/07/25 Python
Python科学计算之Pandas详解
2017/01/15 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
django 微信网页授权登陆的实现
2019/07/30 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
详解python如何引用包package
2020/06/07 Python
HTML5 canvas基本绘图之绘制矩形
2016/06/27 HTML / CSS
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
机械设计职业生涯规划书
2013/12/27 职场文书
大二法英学生职业生涯规划范文
2014/02/27 职场文书
股东授权委托书范文
2014/09/13 职场文书
2015年百日安全活动总结
2015/03/26 职场文书
Python字典和列表性能之间的比较
2021/06/07 Python
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis