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


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 相关文章推荐
js 三级关联菜单效果实例
Aug 13 Javascript
深入理解Javascript中的循环优化
Nov 09 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
Dec 08 Javascript
JQuery基础语法小结
Feb 27 Javascript
JQuery标签页效果的两个实例讲解(4)
Sep 17 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
Oct 28 Javascript
jquery操作select元素和option的实例代码
Feb 03 Javascript
浅析location.href跨窗口调用函数
Nov 22 Javascript
JavaScript ES6中const、let与var的对比详解
Jun 18 Javascript
4个顶级开源JavaScript图表库
Sep 29 Javascript
微信小程序实现下拉框功能
Jul 16 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
Oct 26 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
JavaScript实现滚动栏效果的方法
2015/04/27 PHP
py文件转exe时包含paramiko模块出错解决方法
2016/08/12 PHP
Laravel5中防止XSS跨站攻击的方法
2016/10/10 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
htm调用JS代码
2007/03/15 Javascript
json 实例详细说明教程
2009/10/31 Javascript
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
javascript操纵OGNL标签示例代码
2014/06/16 Javascript
script标签属性用type还是language
2015/01/21 Javascript
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
Google 地图获取API Key详细教程
2016/08/06 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
Bootstrap和Java分页实例第一篇
2016/12/23 Javascript
Bootstrap模态框(Modal)实现过渡效果
2017/03/17 Javascript
微信小程序 slider的简单实例
2017/04/19 Javascript
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
bootstrap响应式导航条模板使用详解(含下拉菜单,弹出框)
2017/11/17 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
echarts浮动显示单位的实现方法示例
2020/12/04 Javascript
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
实例讲解Python设计模式编程之工厂方法模式的使用
2016/03/02 Python
python创建列表和向列表添加元素的实现方法
2017/12/25 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
Tensorflow实现卷积神经网络的详细代码
2018/05/24 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
Ann Taylor官方网站:美国最大的女性产品制造商之一
2016/09/14 全球购物
环境科学专业个人求职信
2013/09/26 职场文书
个人评价范文分享
2014/01/11 职场文书
第二课堂活动总结
2014/05/07 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
Python标准库pathlib操作目录和文件
2021/11/20 Python