效果展示
思路
监听滚动事件,记录上次的滚动距离,与最新滚动距离做对比,如果为正,说明滚动距离距顶值scrollTop变大,用户正在向下滚动页面,此时隐藏,反之则反,隐藏就是top值给他负导航栏的高度距离就隐藏了
步骤
css样式
.isHide{
top:-76px
}
js监听
mounted() {
window.addEventListener('scroll', this.scrolling)
},
methods: {
scrolling(){
// console.log(document.documentElement.scrollTop||document.body.scrollTop)
// 可视窗口顶部距离文档顶部的距离
let scrollTop=document.documentElement.scrollTop||document.body.scrollTop
// 与上次滚动所更新的距顶值做对比,如果是小于0,说明这次对比上次的距顶小,说明用户正在往上滚动,反之则反
let compareLast=scrollTop-this.lastToTop
this.lastToTop=scrollTop
if (compareLast>0){
this.isHide=true
}
else {
this.isHide=false
}
}
}
nav导航css
position: fixed;
top: 0;
transition:all 0.3s ;