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


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 相关文章推荐
用jscript启动sqlserver
Jun 21 Javascript
锋利的jQuery 要点归纳(一) jQuery选择器
Mar 21 Javascript
javascript (用setTimeout而非setInterval)
Dec 28 Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
Nov 28 Javascript
Immutable 在 JavaScript 中的应用
May 02 Javascript
jQuery表单验证简单示例
Oct 17 Javascript
手动初始化Angular的模块与控制器
Dec 26 Javascript
js 数字、字符串、布尔值的转换方法(必看)
Apr 07 Javascript
JS获取填报扩展单元格控件的值的解决办法
Jul 14 Javascript
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
解决echarts的多个折现数据出现坐标和值对不上的问题
Dec 28 Javascript
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 Vue.js
详解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
人大复印资料处理程序_补充篇
2006/10/09 PHP
php 8小时时间差的解决方法小结
2009/12/22 PHP
PHP中iconv函数知识汇总
2015/07/02 PHP
详解php的socket通信
2015/08/11 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
解决前端跨域问题方案汇总
2016/11/20 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
详解Vue-cli 创建的项目如何跨域请求
2017/05/18 Javascript
import与export在node.js中的使用详解
2017/09/28 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
8个非常实用的Vue自定义指令
2020/12/15 Vue.js
python判断字符串是否包含子字符串的方法
2015/03/24 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
2018/06/09 Python
浅谈tensorflow中几个随机函数的用法
2018/07/27 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
为什么Python中没有&quot;a++&quot;这种写法
2018/11/27 Python
对python读取zip压缩文件里面的csv数据实例详解
2019/02/08 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
python dataframe NaN处理方式
2019/12/26 Python
python3.8与pyinstaller冲突问题的快速解决方法
2020/01/16 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
KIKO MILANO西班牙官网:意大利领先的化妆品和护肤品品牌
2019/05/03 全球购物
团委书记的竞聘演讲稿
2014/04/24 职场文书
2014年优质护理服务工作总结
2014/11/14 职场文书
2015年元旦文艺晚会总结(学院)
2014/11/28 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书
放牛班的春天观后感
2015/06/01 职场文书
医务人员岗前培训心得体会
2016/01/08 职场文书
jquery插件实现搜索历史
2021/04/24 jQuery
nginx之queue的具体使用
2022/06/28 Servers