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


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 相关文章推荐
js中的replace方法使用介绍
Oct 28 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
Jan 11 Javascript
JavaScript实现同步于本地时间的动态时间显示方法
Feb 02 Javascript
使用jquery组件qrcode生成二维码及应用指南
Feb 22 Javascript
AngularJs定制样式插入到ueditor中的问题小结
Aug 01 Javascript
bootstrap中模态框、模态框的属性实例详解
Feb 17 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
Apr 18 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
Aug 28 Javascript
详解vue-cli本地环境API代理设置和解决跨域
Sep 05 Javascript
一个因@click.stop引发的bug的解决
Jan 08 Javascript
Swiper.js实现移动端元素左右滑动
Sep 08 Javascript
微信小程序点击顶部导航栏切换样式代码实例
Nov 12 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邮件专题
2006/10/09 PHP
PHP写MySQL数据 实现代码
2009/06/15 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
通过遮罩层实现浮层DIV登录的js代码
2014/02/07 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
JavaScript常用小技巧小结
2014/12/29 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
Node.js Addons翻译(C/C++扩展)
2016/06/12 Javascript
js实现淡入淡出轮播切换功能
2017/01/13 Javascript
AugularJS从入门到实践(必看篇)
2017/07/10 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
Python字符遍历的艺术
2008/09/06 Python
python 从csv读数据到mysql的实例
2018/06/21 Python
Python 判断文件或目录是否存在的实例代码
2018/07/19 Python
Python读取stdin方法实例
2019/05/24 Python
Python使用Pandas库实现MySQL数据库的读写
2019/07/06 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
python中数字是否为可变类型
2020/07/08 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
python 检测图片是否有马赛克
2020/12/01 Python
一款超酷的js+css3实现的3D标签云特效兼容ie7/8/9
2013/11/18 HTML / CSS
详解CSS 3 中的 calc() 方法
2018/01/12 HTML / CSS
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
C/C++有关内存的思考题
2015/12/04 面试题
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
法学专业毕业生自荐信范文
2013/12/18 职场文书
十佳大学生村官事迹
2014/01/09 职场文书
婚前协议书怎么写
2014/04/15 职场文书
中班幼儿评语大全
2014/04/30 职场文书
毕业设计指导教师评语
2014/12/30 职场文书