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


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 相关文章推荐
JXTree对象,读取外部xml文件数据,生成树的函数
Apr 02 Javascript
javascript之锁定表格栏位
Jun 29 Javascript
javascript 密码强弱度检测万能插件
Feb 25 Javascript
JQuery 入门实例1
Jun 25 Javascript
JQuery Tips(4) 一些关于提高JQuery性能的Tips
Dec 19 Javascript
jQuery EasyUI ProgressBar进度条组件
Feb 28 Javascript
vue父子组件的嵌套的示例代码
Sep 08 Javascript
Web技术实现移动监测的介绍
Sep 18 Javascript
vue自定义指令directive实例详解
Jan 17 Javascript
用Object.prototype.toString.call(obj)检测对象类型原因分析
Oct 11 Javascript
Vue 实现一个命令式弹窗组件功能
Sep 25 Javascript
详解JavaScript的计时器和按钮效果设置
Feb 18 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
怎样在PHP中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
Thinkphp和onethink实现微信支付插件
2016/04/13 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
2017/06/28 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
基于jquery实现的鼠标拖拽元素复制并写入效果
2011/08/23 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
vue微信分享到朋友圈 vue微信发送给好友
2018/11/28 Javascript
基于JS实现web端录音与播放功能
2019/04/17 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
Vue实现搜索结果高亮显示关键字
2019/05/28 Javascript
微信小程序 如何获取网络状态
2019/07/26 Javascript
Python字符串中查找子串小技巧
2015/04/10 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
Python+numpy实现矩阵的行列扩展方式
2019/11/29 Python
浅谈django 重载str 方法
2020/05/19 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
利用python制作拼图小游戏的全过程
2020/12/04 Python
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
车间操作工岗位职责
2013/12/19 职场文书
中层竞聘演讲稿
2014/01/09 职场文书
总经理助理岗位职责范本
2014/07/20 职场文书
初中班主任教育随笔
2015/08/15 职场文书
2016北大自主招生自荐信模板
2016/01/28 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书
将图片保存到mysql数据库并展示在前端页面的实现代码
2021/05/02 MySQL
CKAD认证中部署k8s并配置Calico插件
2022/03/31 Servers