在寫項目的時候,遇到了需要添加滾動事件的問題,在簡書Carol_笑一笑這里找到了解決方案。代碼如下
<script>
export default {
name:"vue-scroll",
data () {
return {
……
}
},
mounted: function () {
window.addEventListener('scroll', this.handleScroll, true); // 監聽(綁定)滾輪滾動事件
},
methods: {
handleScroll: function () {
let clientHeight = document.documentElement.clientHeight || document.body.clientHeight;
// 設備/屏幕高度
let scrollObj = document.getElementById(div); // 滾動區域
let scrollTop = scrollObj.scrollTop; // div 到頭部的距離
let scrollHeight = scrollObj.scrollHeight; // 滾動條的總高度
//滾動條到底部的條件
if(scrollTop+clientHeight == scrollHeight){
// div 到頭部的距離 + 屏幕高度 = 可滾動的總高度
}
}
},
destroyed: function () {
window.removeEventListener('scroll', this.handleScroll); // 離開頁面清除(移除)滾輪滾動事件
}
}
</script>
但是在實際應用中,發現移除滾動事件失效了,到達新的頁面滾動事件還存在,從而導致一直報錯。然后從阮一峰先生的博文中找到了問題所在。

然后上面的代碼只需要修改destroyed中的方法即可。
destroyed: function () {
window.removeEventListener('scroll', this.handleScroll,true); // 離開頁面清除(移除)滾輪滾動事件
}
