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


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 相关文章推荐
取得窗口大小 兼容所有浏览器的js代码
Aug 09 Javascript
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
Jan 15 Javascript
javascript抖动元素的小例子
Oct 28 Javascript
IE和Firefox之间在JavaScript语法上的差异
Apr 22 Javascript
深入理解逻辑表达式的用法 与或非的用法
Jun 06 Javascript
JS仿hao123导航页面图片轮播效果
Sep 01 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
Nov 29 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
Dec 15 Javascript
JavaScript实现换肤功能
Sep 15 Javascript
学习Vue组件实例
Apr 28 Javascript
JavaScript实现省市区三级联动
Feb 13 Javascript
如何使用JS console.log()技巧提高工作效率
Oct 14 Javascript
微信小程序顶部导航栏滑动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目录管理函数小结
2008/09/10 PHP
一个php Mysql类 可以参考学习熟悉下
2009/06/21 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
Javascript中使用parseInt函数需要注意的问题
2015/04/02 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
ES6生成器用法实例分析
2017/04/10 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
2017/11/07 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
angular4 共享服务在多个组件中数据通信的示例
2018/03/30 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
jQuery AJAX与jQuery事件的分析讲解
2019/02/18 jQuery
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
通过实例解析JavaScript for in及for of区别
2020/06/15 Javascript
使用Python下载Bing图片(代码)
2013/11/07 Python
Python Tkinter GUI编程入门介绍
2015/03/10 Python
Linux中Python 环境软件包安装步骤
2016/03/31 Python
使用pyecharts无法import Bar的解决方案
2020/04/23 Python
Pycharm保存不能自动同步到远程服务器的解决方法
2019/06/27 Python
python读写csv文件实例代码
2019/07/05 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
python读取Excel表格文件的方法
2019/09/02 Python
加拿大时尚潮流大码女装购物网站:Addition Elle
2018/04/02 全球购物
女性时尚网购:Chic Me
2019/07/30 全球购物
kfc实习自我鉴定
2013/12/14 职场文书
总经理职责
2013/12/22 职场文书
城南旧事读书笔记
2015/06/29 职场文书
python实现ROA算子边缘检测算法
2021/04/05 Python
jquery插件实现代码雨特效
2021/04/24 jQuery