首先添加一个滚动事件:
mounted(){
window.addEventListener('scroll', this.getHeight)
}
然后可以监听到滚动条的高度:
getHeight() {
let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
this.scrollTop = scrollTop
console.log(this.scrollTop) // 获取你操作的滚动条高度
},
这里document.documentElement.scrollTop 和 document.body.scrollTop 的区别呢,就是前者是相对于html标签来说的,后者是相对于body标签来说的。在标准w3c下,document.body.scrollTop的值一直是0的,所以要注意使用document.documentElement.scrollTop(查资料所得(_))。pageYOffset 设置或返回当前页面相对于窗口显示区左上角的 Y 位置,但需要注意的是这个属性在IE8之前的版本不支持。
获取到这个高度之后,你可以做一系列的操作,我这里做一个回到顶部的例子:
goTop(){
let timer = setInterval(() => {
let ispeed = Math.floor(this.scrollTop / 6)
document.documentElement.scrollTop = document.body.scrollTop = this.scrollTop - ispeed
if (this.scrollTop === 0) {
clearInterval(timer)
}
}, 22)
}
最后记得移除你的滚动条事件:
destroyed() {
window.removeEventListener('scroll', this.getHeight)
},