vue中添加滾動加載更多,由於是單頁面因此須要在跳出頁面時候銷燬滾動,要不會出現錯亂。咱們在mounted創建滾動,destroyed銷燬滾動。javascript
mounted () { window.addEventListener('scroll', this.handleScroll) }, destroyed () { window.removeEventListener('scroll', this.handleScroll) },
定義一個函數,在滾動到底部時候使滾動條距離頂部距離與可視區域高度之和等於滾動條總高度,在加載後若是列表長度爲0時應該中止加載,要不會出現一直加載的狀況vue
handleScroll () { //變量scrollTop是滾動條滾動時,距離頂部的距離 var scrollTop = document.documentElement.scrollTop||document.body.scrollTop; //變量windowHeight是可視區的高度 var windowHeight = document.documentElement.clientHeight || document.body.clientHeight; //變量scrollHeight是滾動條的總高度 var scrollHeight = document.documentElement.scrollHeight||document.body.scrollHeight; //滾動條到底部的條件 if(scrollTop+windowHeight==scrollHeight &&this.list.length !==0){ this.loadMore() // 加載的列表數據 } }