绑定在window上 addEventListener 事件需要 第三个参数设置为true,不然事件不起作用
mounted() {
window.addEventListener('scroll',this.handleScroll,true)
}
methods: {
handleScroll(){
let scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
console.log(scrollTop);
}
}
绑定到元素上
mounted() {
document.querySelector("#wrap").addEventListener('scroll',this.handleScroll)
}
methods: {
handleScroll(){
let scrollTop = document.querySelector("#wrap").scrollTop;
console.log(scrollTop);
}
}
可是我试了之后发现window上可以监测到滚动条,但绑定到元素上不行,我突发奇想,是否可以先用window监测,在方法里获取元素的scrollTop,
mounted () {
window.addEventListener('scroll', this.handleScroll, true)
},
methods: {
//实现返回顶部的效果 控制按钮的显示和隐藏
handleScroll () {
let scrollTop = document.getElementById('homemain').scrollTop;
let clientHeight = document.getElementById('homemain').clientHeight;
let scrollHeight = document.getElementById('homemain').scrollHeight;
//滚动条到底部的条件即为scrollTop + clientHeight == scrollHeight。
if ((scrollTop + clientHeight) > (scrollHeight / 2)) {
this.isUp = true
} else {
this.isUp = false
}
}
}