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


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访问XML数据的实例
Dec 27 Javascript
Jquery ajaxsubmit上传图片实现代码
Nov 04 Javascript
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
Oct 10 Javascript
js给网页加上背景音乐及选择音效的方法
Mar 03 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
Sep 01 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
Nov 02 Javascript
BootStrap入门教程(三)之响应式原理
Sep 19 Javascript
详解升级react-router 4 踩坑指南
Aug 14 Javascript
javascript中的隐式调用
Feb 10 Javascript
vue.js 实现输入框动态添加功能
Jun 25 Javascript
jquery实现动态添加附件功能
Oct 23 jQuery
JS中的算法与数据结构之二叉查找树(Binary Sort Tree)实例详解
Aug 16 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
360通用php防护代码(使用操作详解)
2013/06/18 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
2020/04/06 PHP
JavaScript让IE浏览器event对象符合W3C DOM标准
2009/11/24 Javascript
javascript函数中的arguments参数
2010/08/01 Javascript
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
jQuery标签替换函数replaceWith()的使用例子
2014/08/28 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
webpack学习笔记之代码分割和按需加载的实例详解
2017/07/20 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
Vue波纹按钮组件制作
2018/04/30 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
解决layer 关闭当前弹窗 关闭遮罩层 input值获取不到的问题
2019/09/25 Javascript
jQuery插件simplePagination的使用方法示例
2020/04/28 jQuery
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
Python3处理文件中每个词的方法
2015/05/22 Python
用python记录运行pid,并在需要时kill掉它们的实例
2017/01/16 Python
python 删除大文件中的某一行(最有效率的方法)
2017/08/19 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
利用Python如何批量修改数据库执行Sql文件
2018/07/29 Python
Python判断字符串是否xx开始或结尾的示例
2019/08/08 Python
Django 在iframe里跳转顶层url的例子
2019/08/21 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
2020/11/27 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
天美时手表加拿大官网:Timex加拿大
2016/09/01 全球购物
总会计师岗位职责
2014/02/19 职场文书
经济国贸专业求职信
2014/06/18 职场文书
政风行风评议整改方案
2014/09/15 职场文书
局机关干部群众路线个人对照检查材料思想汇报
2014/10/05 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS