微信小程序实现页面浮动导航


Posted in Javascript onJanuary 28, 2019

一、前言

做复杂的小程序就与web页面的区别原来越小了,一些web页面的功能会被要求添加到微信小程序页面中。

二、功能

页面在滑动的时候顶部页面导航跟随滑动,当点击导航中的任意一项时返回页面顶部。

三、实现

wxml代码:

<view class='container'>
<view class='navigation {{pageVariable.isFloat == true ? "float-navigation":""}}'>
 <view class='{{policyFilter.curSelectNavigationItemFormate(pageVariable.curSelectedItemId,"0")}}' data-id='0' catchtap='selectNavigationItem'>全部</view>
 <view class='{{policyFilter.curSelectNavigationItemFormate(pageVariable.curSelectedItemId,"1")}}' data-id='1' catchtap='selectNavigationItem'>保障中</view>
 <view class='{{policyFilter.curSelectNavigationItemFormate(pageVariable.curSelectedItemId,"2")}}' data-id='2' catchtap='selectNavigationItem'>已生效</view>
 <view class='{{policyFilter.curSelectNavigationItemFormate(pageVariable.curSelectedItemId,"3")}}' data-id='3' catchtap='selectNavigationItem'>未生效</view>
 </view>
</view>

wxss代码:

.navigation { /*导航样式*/
 width: 100%;
 display: flex;
 justify-content: space-around;
 align-items: center;
 height: 80rpx;
 background-color: #fff;
 font-size: 28rpx;
 color: #333;
 font-weight: 500;
 box-shadow: inset 0 0 0 0 rgba(0, 0, 0, 0.30);
}
 
.float-navigation { /*导航浮动起来的css*/
 position: fixed;
 top: 0;
 z-index: 1000;
}
 
.navigation-item-selected { /*导航项选中的样式*/
 color: #40a0ee;
 height: 80rpx;
 line-height: 80rpx;
 border-bottom: 3rpx solid #40a0ee;
}

js代码:

Page({
 data:function () {
 var model = {};
 model.pageVariable = {
  curSelectedItemId:'0', //顶部导航栏,当前选中的项
  isFloat:false, //控制导航栏浮动
 }
 return model;
 }(),
 /**
 * 选择导航
 */
 selectNavigationItem:function(e){
 this.setData({
  'pageVariable.curSelectedItemId': e.currentTarget.dataset.id,
  'pageVariable.isFloat':false
 });
 wx.pageScrollTo({
  scrollTop: 0,
 });
 this.initData(e.currentTarget.dataset.id); //加载数据
 },
 onPageScroll:function(res){
 if (res.scrollTop >= 1){ //开始滚动
  if (!this.data.pageVariable.isFloat){
  this.setData({
   'pageVariable.isFloat':true
  });
  }
 }else{
  this.setData({
  'pageVariable.isFloat': false
  });
 }
 }
})

总结:

这个功能的实现主要是通过onPageScroll页面注册函数来实现页面滚动,通过pageScrollTo api实现导航选项在被选中时返回到页面顶部。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 面向对象,实现namespace,class,继承,重载
Oct 29 Javascript
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
May 07 Javascript
JavaScript中对JSON对象的基本操作示例
May 21 Javascript
json定义及jquery操作json的方法
Sep 29 Javascript
canvas实现流星雨的背景效果
Jan 13 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
Apr 13 Javascript
简单实现JavaScript弹幕效果
Aug 27 Javascript
ReactNative实现图片上传功能的示例代码
Jul 11 Javascript
AngularJS中scope的绑定策略实例分析
Oct 30 Javascript
浅谈vue项目如何打包扔向服务器
May 08 Javascript
Webpack设置环境变量的一些误区详解
Dec 19 Javascript
vue实现水波涟漪效果的点击反馈指令
May 31 Vue.js
微信小程序顶部导航栏滑动tab效果
Jan 28 #Javascript
详解基于node.js的脚手架工具开发经历
Jan 28 #Javascript
微信小程序实现顶部导航特效
Jan 28 #Javascript
详解几十行代码实现一个vue的状态管理
Jan 28 #Javascript
vue.js仿hover效果的实现方法示例
Jan 28 #Javascript
vue-for循环嵌套操作示例
Jan 28 #Javascript
使用pm2自动化部署node项目的方法步骤
Jan 28 #Javascript
You might like
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
在视频前插入广告
2006/11/20 Javascript
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
2010/09/14 Javascript
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
三种检测iPhone/iPad设备方向的方法
2014/04/23 Javascript
js实现的标题栏新消息闪烁提示效果
2014/06/06 Javascript
Node.js编程中客户端Session的使用详解
2015/06/23 Javascript
轻量级javascript 框架Backbone使用指南
2015/07/24 Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
2015/12/24 Javascript
基于javascript实现根据身份证号码识别性别和年龄
2016/01/22 Javascript
关于cookie的初识和运用(js和jq)
2016/04/07 Javascript
浅谈jQuery效果函数
2016/09/16 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
浅谈如何使用 webpack 优化资源
2017/10/20 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
详解js加减乘除精确计算
2019/03/19 Javascript
node.js命令行教程图文详解
2019/05/27 Javascript
JavaScript实现公告栏上下滚动效果
2020/03/13 Javascript
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
Python生成随机验证码的两种方法
2015/12/22 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
2018/07/09 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
python对象与json相互转换的方法
2019/05/07 Python
python 实现矩阵填充0的例子
2019/11/29 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
2020/01/06 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
HTML5+CSS3实现拖放(Drag and Drop)示例
2014/07/07 HTML / CSS
HTML5在线预览PDF的示例代码
2017/09/14 HTML / CSS
J2EE中的容器都包括哪些
2013/08/21 面试题
继承权公证书
2014/04/09 职场文书
校园安全标语
2014/06/07 职场文书
担保书范文
2015/01/20 职场文书
法律服务所工作总结
2015/08/10 职场文书
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android