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


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 相关文章推荐
js 页面输出值
Nov 30 Javascript
JavaScript几种形式的树结构菜单
May 10 Javascript
日历查询的算法 如何计算某一天是星期几
Dec 12 Javascript
javascript通过className来获取元素的简单示例代码
Jan 10 Javascript
jquery插件之定时查询待处理任务数量
May 01 Javascript
JQuery中extend的用法实例分析
Feb 08 Javascript
JS版元素周期表实现方法
Aug 05 Javascript
JavaScript 节流函数 Throttle 详解
Jul 04 Javascript
jQuery简易时光轴实现方法示例
Mar 13 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
Jan 03 Javascript
vue父组件异步获取数据传给子组件的方法
Jul 26 Javascript
react-native使用leanclound消息推送的方法
Aug 06 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下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
深入apache host的配置详解
2013/06/09 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
laravel学习笔记之模型事件的几种用法示例
2017/08/15 PHP
img的onload的另类用法
2008/01/10 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
jQuery实现简单的间隔向上滚动效果
2015/03/09 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
D3.js的基础部分之数组的处理数组的排序和求值(v3版本)
2019/05/09 Javascript
微信小程序实现定位及到指定位置导航的示例代码
2019/08/20 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
2019/12/06 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
使用Python写CUDA程序的方法
2017/03/27 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
python爬虫正则表达式之处理换行符
2018/06/08 Python
scrapy-redis源码分析之发送POST请求详解
2019/05/15 Python
Python 中Django验证码功能的实现代码
2019/06/20 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
Django app配置多个数据库代码实例
2019/12/17 Python
python logging设置level失败的解决方法
2020/02/19 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
医学生个人求职信范文
2014/02/07 职场文书
做一个有道德的人演讲稿
2014/05/14 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
担保书格式
2015/01/20 职场文书
学校端午节活动总结
2015/02/11 职场文书
检讨书范文
2019/04/16 职场文书
python基础之//、/与%的区别详解
2022/06/10 Python