vue实现中部导航栏布局功能


Posted in Javascript onJuly 30, 2019

接下来是中部导航栏。我们看到这里的头像动画,和中部导航栏定位都是跟鼠标滚动有关的。我们先将布局实现一下。这里是要求在页面上部分滚动范围内,导航栏一直在div的上部,随着鼠标的滚动而改变位置。到下部分滚动范围,导航栏就一直固定到页面的上部分。

这里需要注意两个地方

这里需要一个覆盖不了的区域,可以给人一种更好开关屏的感觉。而且中部导航栏下方区域的内容,在下滑的时候不能出现在这个区域。

vue实现中部导航栏布局功能

一定要注意 尽可能的少进行DOM操作,这样是非常影响性能的 !

监听鼠标滚动事件

private fixedFlag: boolean = false;
 private unFixedFlag: boolean = true;
 private mounted() {
  window.addEventListener("scroll", this.handleScroll);
 }
 private handleScroll() {
  const scrollTop =
   window.pageYOffset ||
   document.documentElement.scrollTop ||
   document.body.scrollTop;
  if (scrollTop > 300) {
   if (!this.fixedFlag) {
    const obj = document!.getElementById("index-menu");
    const obj2 = document!.getElementById("fake-area");
    obj!.style.position = "fixed";
    obj!.style.top = "77px";
    obj2!.style.position = "fixed";
    obj2!.style.top = "47px";
    this.fixedFlag = true;
    this.unFixedFlag = false;
   }
  } else {
   if (!this.unFixedFlag) {
    const obj = document!.getElementById("index-menu");
    const obj2 = document!.getElementById("fake-area");
    obj!.style.position = "";
    obj!.style.top = "";
    obj2!.style.position = "";
    obj2!.style.top = "";
    this.unFixedFlag = true;
    this.fixedFlag = false;
   }
  }
 }

效果展示

vue实现中部导航栏布局功能

项目地址

https://github.com/pppercyWan...

总结

以上所述是小编给大家介绍的vue实现中部导航栏布局功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
在Javascript中定义对象类别
Dec 22 Javascript
页面右下角弹出提示框示例代码js版
Aug 02 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
Dec 06 Javascript
jquery实现通用版鼠标经过淡入淡出效果
Jun 15 Javascript
javascript事件冒泡和事件捕获详解
May 26 Javascript
AngularJS上拉加载问题解决方法
May 23 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
Apr 28 Javascript
Iscrool下拉刷新功能实现方法(推荐)
Jun 26 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
Oct 26 Javascript
使用JavaScript破解web
Sep 28 Javascript
Vue表单输入绑定的示例代码
Nov 01 Javascript
vue点击页面空白处实现保存功能
Nov 06 Javascript
js定义类的方法示例【ES5与ES6】
Jul 30 #Javascript
Javascript 对象(object)合并操作实例分析
Jul 30 #Javascript
JavaScript跳出循环的三种方法(break, return, continue)
Jul 30 #Javascript
8个有意思的JavaScript面试题
Jul 30 #Javascript
开源一个微信小程序仪表盘组件过程解析
Jul 30 #Javascript
原生js添加一个或多个类名的方法分析
Jul 30 #Javascript
vue2.0项目集成Cesium的实现方法
Jul 30 #Javascript
You might like
PHP多例模式介绍
2013/06/24 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
JS 动态加载脚本的4种方法
2009/05/05 Javascript
jQuery$命名冲突怎么办如何解决
2014/01/16 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
2014/06/15 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
一款基jquery超炫的动画导航菜单可响应单击事件
2014/11/02 Javascript
jQuery实现购物车表单自动结算效果实例
2015/08/10 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
给easyui的datebox控件添加清空按钮的实现方法
2016/11/09 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
Bootstrap 网格系统布局详解
2017/03/19 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
[00:42]《辉夜杯》—职业组预选赛12月3日15点 正式打响
2015/12/03 DOTA
详解Python中的join()函数的用法
2015/04/07 Python
Python 40行代码实现人脸识别功能
2017/04/02 Python
Python Grid使用和布局详解
2018/06/30 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
python 实现GUI(图形用户界面)编程详解
2019/07/17 Python
对CSS3选择器的研究(详解)
2016/09/16 HTML / CSS
Meli Melo官网:名媛们钟爱的英国奢侈手包品牌
2017/04/17 全球购物
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
门卫岗位职责
2013/11/15 职场文书
医学求职自荐信
2014/06/21 职场文书
大型公益活动策划方案
2014/08/20 职场文书
个人四风对照检查材料
2014/09/26 职场文书
2015初中生物教研组工作总结
2015/07/21 职场文书
Vue3.0中Ref与Reactive的区别示例详析
2021/07/07 Vue.js