首页 > 编程 > JavaScript > 正文

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

2019-11-19 11:06:14
字体:
来源:转载
供稿:网友

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

这里需要注意两个地方

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


一定要注意 尽可能的少进行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;   }  } }

效果展示

项目地址

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

总结

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表