如何用Vue实现居中导航栏布局效果?

更新于
2026-10-01 07:25:35
2阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计547个文字,预计阅读时间需要3分钟。

如何用Vue实现居中导航栏布局效果?

接下来是中部导航栏。我们观察到这里的头像动画与中部导航栏的定位都与鼠标滚动有关。首先,我们将布局实现以下效果:在页面部分滚动范围内,导航栏直接位于div的顶部,随滚动随动。

接下来是中部导航栏。我们看到这里的头像动画,和中部导航栏定位都是跟鼠标滚动有关的。我们先将布局实现一下。这里是要求在页面上部分滚动范围内,导航栏一直在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; } } }

效果展示

项目地址

如何用Vue实现居中导航栏布局效果?

github.com/pppercyWan...

总结

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

本文共计547个文字,预计阅读时间需要3分钟。

如何用Vue实现居中导航栏布局效果?

接下来是中部导航栏。我们观察到这里的头像动画与中部导航栏的定位都与鼠标滚动有关。首先,我们将布局实现以下效果:在页面部分滚动范围内,导航栏直接位于div的顶部,随滚动随动。

接下来是中部导航栏。我们看到这里的头像动画,和中部导航栏定位都是跟鼠标滚动有关的。我们先将布局实现一下。这里是要求在页面上部分滚动范围内,导航栏一直在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; } } }

效果展示

项目地址

如何用Vue实现居中导航栏布局效果?

github.com/pppercyWan...

总结

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