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


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中DOM树操作之使用反向插入方法实例分析
Jan 23 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
Jun 07 Javascript
AngularJs Modules详解及示例代码
Sep 01 Javascript
JS产生随机数的用法小结
Dec 10 Javascript
原生JS实现的雪花飘落动画效果
May 03 Javascript
iphone刘海屏页面适配方法
May 07 Javascript
React优化子组件render的使用
May 12 Javascript
Element ui 下拉多选时新增一个选择所有的选项
Aug 21 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
Oct 15 Javascript
jQuery实现点击滚动到指定元素上的方法分析
Mar 19 jQuery
js获取url页面id,也就是最后的数字文件名
Sep 25 Javascript
vue中 this.$set的使用详解
Nov 17 Vue.js
微信小程序顶部导航栏滑动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/04/24 PHP
php max_execution_time执行时间问题
2011/07/17 PHP
Linux Apache PHP Oracle 安装配置(具体操作步骤)
2013/06/17 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
yii通过小物件生成view的方法
2016/10/08 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
2016/10/13 PHP
laravel框架之数据库查出来的对象实现转化为数组
2019/10/23 PHP
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
2012/07/25 Javascript
jQuery操作Select的Option上下移动及移除添加等等
2013/11/18 Javascript
jquery实现input输入框实时输入触发事件代码
2014/01/28 Javascript
js实现防止被iframe的方法
2015/07/03 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
JavaScript几种数组去掉重复值的方法推荐
2016/04/12 Javascript
Bootstrap使用基础教程详解
2016/09/05 Javascript
Vue动态组件与异步组件实例详解
2019/02/23 Javascript
详解vue项目中调用百度地图API使用方法
2019/04/25 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
Python装饰器使用实例:验证参数合法性
2015/06/24 Python
对Python中range()函数和list的比较
2018/04/19 Python
Python 打印中文字符的三种方法
2018/08/14 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
python 含子图的gif生成时内存溢出的方法
2019/07/07 Python
springboot配置文件抽离 git管理统 配置中心详解
2019/09/02 Python
Python远程开发环境部署与调试过程图解
2019/12/09 Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
2020/03/13 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
Html5适配iphoneX刘海屏的简单实现
2019/04/09 HTML / CSS
H5 video poster属性设置视频封面的方法
2020/05/25 HTML / CSS
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
Kiehl’s科颜氏西班牙官方网站:源自美国的植物护肤品牌
2020/02/22 全球购物
大学生创业计划书的范文
2014/01/07 职场文书
感恩教育活动总结
2014/05/05 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
2014年卫生院工作总结
2014/12/03 职场文书