我们想要判断一个div是否已经触底了,我们首先要给这个div绑定一个onScroll属性,在这我们获取滚动条的高度,页面可视高度和滚动轴到顶部的距离
<div className='chudi' onScroll={this.scroll}></div>
scroll=(event)=>{
// 整个滚动的高度
console.log(event.target.scrollHeight);
// 获取页面可视的高度
console.log(event.target.clientHeight);
// 获取滚动条距顶部的距离
console.log(event.target.scrollTop);
// 如果顶部的高度加上我们页面可视的高度大于等于整个滚动轴的高度,那么说明他触底了
if(event.target.scrollTop+event.target.clientHeight+20>event.target.scrollHeight){
alert('触底了')
this.getlist(20)
}
}
scroll函数有一个event参数,打印event,我们可以看到event下面的所有的属性
在页面样式中,我们想要出滚动轴,那就需要使用 overflow: scroll出现滚动轴
完整的触底组件代码
import React, { Component } from 'react'
import './Chudi.scss'
export default class Chudi extends Component {
constructor(){
super()
this.state={
num:1,
list:[]
}
}
// 获取一个接口的方法
getlist(