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


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的document对象和window对象详解
Dec 30 Javascript
jQuery 1.5最新版本的改进细节分析
Jan 19 Javascript
浅析Node.js实现HTTP文件下载
Aug 05 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
Nov 01 Javascript
Web开发中客户端的跳转与服务器端的跳转的区别
Mar 05 Javascript
基于JavaScript实现焦点图轮播效果
Mar 27 Javascript
Angular2 之 路由与导航详细介绍
May 26 Javascript
vue文件树组件使用详解
Mar 29 Javascript
浅谈js闭包理解
Apr 01 Javascript
微信小程序开发常见问题及解决方案
Jul 11 Javascript
Vue+Openlayers自定义轨迹动画
Sep 24 Javascript
JavaScript实现H5接金币功能(实例代码)
Feb 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
PHP树的代码,可以嵌套任意层
2006/10/09 PHP
PR值查询 | PageRank 查询
2006/12/20 PHP
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
用 Composer构建自己的 PHP 框架之基础准备
2014/10/30 PHP
PHP+jquery实时显示网站在线人数的方法
2015/01/04 PHP
php从字符串创建函数的方法
2015/03/16 PHP
php编程每天必学之验证码
2016/03/03 PHP
jQuery getJSON 处理json数据的代码
2010/07/26 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
返回函数的JavaScript函数
2016/06/14 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
jQuery实现手势解锁密码特效
2017/08/14 jQuery
jquery radio 动态控制选中失效问题的解决方法
2018/02/28 jQuery
vue-cli3环境变量与分环境打包的方法示例
2019/02/18 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
2019/04/13 Javascript
node使用request请求的方法
2019/12/20 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
[45:18]完美世界DOTA2联赛循环赛 PXG vs IO 第二场 11.06
2020/11/09 DOTA
Python过滤列表用法实例分析
2016/04/29 Python
Java及python正则表达式详解
2017/12/27 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
python基于event实现线程间通信控制
2020/01/13 Python
用python绘制樱花树
2020/10/09 Python
python 爬取百度文库并下载(免费文章限定)
2020/12/04 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
信息管理员岗位职责
2013/12/01 职场文书
关于圣诞节的广播稿
2014/01/26 职场文书
优秀志愿者事迹材料
2014/02/03 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书
党员活动总结
2015/02/04 职场文书