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


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 相关文章推荐
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
Jun 27 Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
Oct 09 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
Nov 20 Javascript
浏览器图片选择预览、旋转、批量上传的JS代码实现
Dec 04 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
Sep 10 Javascript
JavaScript编程中布尔对象的基本使用
Oct 25 Javascript
JavaScript必知必会(五) eval 的使用
Jun 08 Javascript
全面了解函数声明与函数表达式、变量提升
Aug 09 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
Aug 24 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
Dec 16 Javascript
Express框架之connect-flash详解
May 31 Javascript
解决layui-open关闭自身窗口的问题
Sep 10 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 来访国内外IP判断代码并实现页面跳转
2009/12/18 PHP
php中try catch捕获异常实例详解
2014/11/21 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
PHP实现通过二维数组键值获取一维键名操作示例
2019/10/11 PHP
PHP并发场景的三种解决方案代码实例
2021/02/27 PHP
用js实现多域名不同文件的调用方法
2007/01/12 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
javascript随机将第一个dom中的图片添加到第二个div中示例
2013/10/08 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
2014/04/02 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
jQuery实现日期联动效果实例
2016/07/26 Javascript
bootstrap组件之按钮式下拉菜单小结
2017/01/19 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
js异步编程小技巧详解
2017/08/14 Javascript
JavaScript-定时器0~9抽奖系统详解(代码)
2017/08/16 Javascript
JS实现的将html转为pdf功能【基于浏览器端插件jsPDF】
2018/02/06 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
vue2.0实现音乐/视频播放进度条组件
2018/06/06 Javascript
详解在React中跨组件分发状态的三种方法
2018/08/09 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
adidas爱尔兰官方网站:阿迪达斯运动鞋和运动服
2019/11/01 全球购物
竞选部门副经理的自荐书范文
2014/02/11 职场文书
落实八项规定专题民主生活会对照检查材料
2014/09/15 职场文书
百年孤独读书笔记
2015/06/29 职场文书
Python快速优雅的批量修改Word文档样式
2021/05/20 Python
详解Spring Boot使用系统参数表提升系统的灵活性
2021/06/30 Java/Android
Python中生成随机数据安全性、多功能性、用途和速度方面进行比较
2022/04/14 Python