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


Posted in Javascript onJanuary 08, 2020

一、前言

做复杂的小程序就与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 有用的脚本函数
May 07 Javascript
jQuery 技巧大全(新手入门篇)
May 12 Javascript
jQuery 行背景颜色的交替显示(隔行变色)实现代码
Dec 13 Javascript
jquery实现ajax提交form表单的方法总结
Mar 03 Javascript
SyntaxHighlighter 3.0.83使用笔记
Jan 26 Javascript
原生js编写autoComplete插件
Apr 13 Javascript
BootStrap glyphicon图标无法显示的解决方法
Sep 06 Javascript
详解Angular-Cli中引用第三方库
May 21 Javascript
全新打包工具parcel零配置vue开发脚手架
Jan 11 Javascript
使用vue.js在页面内组件监听scroll事件的方法
Sep 11 Javascript
async/await优雅的错误处理方法总结
Jan 30 Javascript
webpack优化之代码分割与公共代码提取详解
Nov 22 Javascript
微信小程序基于movable-view实现滑动删除效果
Jan 08 #Javascript
小程序自定义模板实现吸顶功能
Jan 08 #Javascript
微信小程序静默登录的实现代码
Jan 08 #Javascript
微信小程序wxs实现吸顶效果
Jan 08 #Javascript
微信小程序实现吸顶特效
Jan 08 #Javascript
nuxt配置通过指定IP和端口访问的实现
Jan 08 #Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
Jan 08 #Javascript
You might like
PL-880隐藏功能
2021/03/01 无线电
PHP数组及条件,循环语句学习
2012/11/11 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
2019/04/05 PHP
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
在vs2010中调试javascript代码方法
2011/02/11 Javascript
js统计页面的来访次数实现代码
2014/05/09 Javascript
jQuery+ajax中getJSON() 用法实例
2014/12/22 Javascript
jQuery实现宽屏图片轮播实例教程
2015/11/24 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
微信小程序开发之Tabbar实例详解
2017/01/09 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
js获取本日、本周、本月的时间代码
2020/02/01 Javascript
node使用async_hooks模块进行请求追踪
2021/01/28 Javascript
python多线程用法实例详解
2015/01/15 Python
python操作sqlite的CRUD实例分析
2015/05/08 Python
Python中用于计算对数的log()方法
2015/05/15 Python
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
单链表反转python实现代码示例
2018/02/08 Python
python批量修改文件编码格式的方法
2018/05/31 Python
浅谈Python中的全局锁(GIL)问题
2019/01/11 Python
python函数与方法的区别总结
2019/06/23 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
Python 使用type来定义类的实现
2019/11/19 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
详解Python 函数参数的拆解
2020/09/02 Python
戴森英国官网:Dyson英国
2019/05/07 全球购物
消防先进事迹材料
2014/02/10 职场文书
地理科学专业自荐信
2014/09/01 职场文书
幼儿园迎国庆65周年活动策划方案
2014/09/16 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
2014年信访工作总结
2014/11/17 职场文书
Python实现归一化算法详情
2022/03/18 Python