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


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 相关文章推荐
二行代码解决全部网页木马
Mar 28 Javascript
js TextArea的选中区域处理
Dec 28 Javascript
JS中Iframe之间传值的方法
Mar 11 Javascript
node.js中的fs.readdir方法使用说明
Dec 17 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
Jul 05 Javascript
在JavaScript中call()与apply()区别
Jan 22 Javascript
AngularJS入门教程之Cookies读写操作示例
Nov 02 Javascript
js + css实现标签内容切换功能(实例讲解)
Oct 09 Javascript
bootstrap响应式工具使用详解
Nov 29 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
Feb 14 jQuery
Vue实现table上下移动功能示例
Feb 21 Javascript
浅谈Three.js截图并下载的大坑
Nov 01 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出现web系统多域名登录失败的解决方法
2014/09/30 PHP
PHP生成随机字符串(3种方法)
2015/09/25 PHP
ThinkPHP路由机制简介
2016/03/23 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
浅析用prototype定义自己的方法
2013/11/14 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
2015/03/10 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
2016/12/27 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
Angularjs修改密码的实例代码
2017/05/26 Javascript
jquery ztree实现右键收藏功能
2017/11/20 jQuery
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
Vue Socket.io源码解读
2018/02/07 Javascript
Nodejs 识别图片类型的方法
2019/08/15 NodeJs
Nest.js散列与加密实例详解
2021/02/24 Javascript
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
Python中使用不同编码读写txt文件详解
2015/05/28 Python
利用pandas读取中文数据集的方法
2018/07/25 Python
Python pyinotify模块实现对文档的实时监控功能方法
2018/10/13 Python
Pandas统计重复的列里面的值方法
2019/01/30 Python
python仿抖音表白神器
2019/04/08 Python
如何将你的应用迁移到Python3的三个步骤
2019/12/22 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
简单了解python shutil模块原理及使用方法
2020/04/28 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
2020/05/22 Python
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
司机的工作范围及职责
2013/11/13 职场文书
中华美德颂演讲稿
2014/05/20 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
2014年公司工作总结
2014/11/22 职场文书
最感人的道歉情书
2015/05/12 职场文书
2016新教师岗前培训心得体会
2016/01/08 职场文书