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


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 相关文章推荐
jquery select下拉框操作的一些说明
Apr 02 Javascript
关于删除时的提示处理(确定删除吗)
Nov 03 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
Jun 05 Javascript
jquery搜索框效果实现方法
Jan 16 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
Aug 01 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
May 16 Javascript
省市联动效果的简单实现代码(推荐)
Jun 06 Javascript
vue 获取及修改store.js里的公共变量实例
Nov 06 Javascript
javascript实现异形滚动轮播
Nov 28 Javascript
Node.js中文件系统fs模块的使用及常用接口
Mar 06 Javascript
jQuery实现日历效果
Sep 11 jQuery
Jquery Fade用法详解
Nov 06 jQuery
详解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与javascript对多项选择的处理
2006/10/09 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
PHP正则匹配到2个字符串之间的内容方法
2018/12/24 PHP
php抽象方法和普通方法的区别点总结
2019/10/13 PHP
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
js中函数声明与函数表达式
2015/06/03 Javascript
jQuery插件bgStretcher.js实现全屏背景特效
2015/06/05 Javascript
js中最容易被忽视的事件问题大总结
2016/05/15 Javascript
JS获取一个未知DIV高度的方法
2016/08/09 Javascript
JavaScript中正则表达式使数字、中文或指定字符高亮显示
2017/10/31 Javascript
详解ajax的data参数错误导致页面崩溃
2018/04/30 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
原生JavaScript实现换肤
2021/02/19 Javascript
[05:29]2014DOTA2国际邀请赛 赛后专访:LGDNewbee顺利过关
2014/07/13 DOTA
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
[56:00]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第一局
2016/03/05 DOTA
python开发之for循环操作实例详解
2015/11/12 Python
学习python之编写简单简单连接数据库并执行查询操作
2016/02/27 Python
Python面向对象编程中关于类和方法的学习笔记
2016/06/30 Python
python访问抓取网页常用命令总结
2017/04/11 Python
Python+Wordpress制作小说站
2017/04/14 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
2019/03/29 Python
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
德国咖啡批发商:Coffeefair
2019/08/26 全球购物
项目经理的岗位职责
2013/11/23 职场文书
大学生自荐书范文
2013/12/10 职场文书
全国道德模范事迹
2014/02/01 职场文书
总经理助理岗位职责
2015/01/31 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
2016幼儿园教师年度考核评语
2015/12/01 职场文书
导游词之西安大清真寺
2019/12/17 职场文书
Nginx反向代理配置的全过程记录
2021/06/22 Servers