vue 顶部导航栏 滚动实现具体代码
时间: 2024-01-30 11:03:46 浏览: 109
以下是一个简单的 Vue 顶部导航栏滚动实现的示例代码:
```html
<template>
<div class="header" :class="{ 'sticky': sticky }">
<!-- 导航栏内容 -->
</div>
</template>
<script>
export default {
data() {
return {
sticky: false, // 是否固定导航栏
};
},
mounted() {
window.addEventListener('scroll', this.handleScroll);
},
beforeDestroy() {
window.removeEventListener('scroll', this.handleScroll);
},
methods: {
handleScroll() {
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
this.sticky = scrollTop > 0; // 当滚动距离大于0时,固定导航栏
},
},
};
</script>
<style>
.sticky {
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 999;
/* 导航栏样式 */
}
</style>
```
在上述代码中,我们通过监听滚动事件来判断是否需要固定导航栏。当滚动距离大于0时,我们将 `sticky` 属性设置为 `true`,并在模板中动态绑定 `sticky` 属性来实现导航栏的固定和解除固定。
需要注意的是,在监听滚动事件时,我们使用了 `window.pageYOffset` 和 `document.documentElement.scrollTop` 来获取滚动距离。这是因为在不同的浏览器中,获取滚动距离的方式可能会有所差异。
阅读全文