触底加载没有效果--触底时传入scroll的函数没有执行
来源:10-1 课程回顾
慕仔732134
2020-02-23
已测试可以调用scroll() 可以进入scroll.start()函数 但是触底时完全没有反应 触底时没有执行传入的getList()函数
应该是scroll,start()函数内出了问题 但是不太懂start函数的原理 所以不知道是哪里的问题
源码----复制的老师的
const scroll = {
isEnd: false,
start(callback) {
let timer = null
callback && window.addEventListener(‘scroll’, () => {
if (timer) {
clearTimeout(timer)
}
// 函数防抖
timer = setTimeout(() => {
// 浏览器向上滚动的高度
const scrollTop = document.documentElement.scrollTop || document.body.scrollTop
// 文档的真实高度
const scrollHeight = document.documentElement.scrollHeight
// 浏览器窗口(文档)的可视高度,就是肉眼可见的那部分全屏高度
const clientHeight = document.documentElement.clientHeight
if (!this.isEnd && scrollHeight == scrollTop + clientHeight) {
window.scrollTo(0, scrollTop - 100)
// 请求数据
callback()
}
}, 300)
})
},
end() {
this.isEnd = true
}
}
export default scroll
2回答
-
企鹅小仙女
2021-03-22
我发现这个触底加载新数据是没有毛病的 如果发生触底了没加载新数据的效果 只要刷新一下页面 就解决了 emmm.....
00 -
谢成
2020-02-23
可以在这里输出下这几个值,看下是哪个值有问题:
00