美文网首页
react 元素滚动 触底

react 元素滚动 触底

作者: 魔仙堡杠把子灬 | 来源:发表于2021-05-24 09:59 被阅读0次

我不记得小时候的梦想了,但绝对不是买一套房子。

我的github: 李大玄
我的私人博客: 李大玄
我的npm开源库: 李大玄
我的简书: 李大玄
我的CSDN: 李大玄
我的掘金: 李大玄
哔哩哔哩: 李大玄

在这里插入图片描述

export default class Scroll extends Component<Props, State>  {
  private scrollRef: any;
  constructor(props: Props) {
    super(props);
    this.state = {
      tableList: [],
      
    } as State;
    this.initPage = this.initPage.bind(this);
    this.onScrollCapture = this.onScrollCapture.bind(this);
  }
  // 将要装载,在render之前调用;
  // componentWillMount() {}
  // (装载完成),在render之后调用 建议请求接口
  componentDidMount() {
    this.initPage();
  }
  initPage() {
    const arr = [];
    for (let i = 0; i < 30; i++) {
      const obj = {
        name: '李大玄',
        age: 26,
        id: i,
        sex: '男'
      };
      arr.push(obj);
    }
    this.setState({
      tableList: arr
    });
  }
 // 这里是滚动事件
  onScrollCapture() {
    const { scrollTop, clientHeight, scrollHeight } = this.scrollRef;
    
    let time: any = null;
    clearTimeout(time);
    time = setTimeout(() => {
      console.log(scrollTop, clientHeight, scrollHeight );
      if(scrollTop + clientHeight >= scrollHeight){
        //请求逻辑
        console.log('触底了');
      }
    }, 1000);
  }
  render() {
    const {tableList} = this.state;
    const boxStyle = {
      background: 'pink',
      // overflow: 'hidden',
    };
    return(
      <div>
      <!--         !!!!!!!!                 事件:onScrollCapture   ref  -->
        <div className="w300 h300 p10 overauto" onScrollCapture={ this.onScrollCapture } ref={(ref: any) => {this.scrollRef = ref}} style={boxStyle}>
          <ul>
            {
              tableList.map((item, index) => {
                return (
                  <li key={index}> { item.id } - { item.name } - { item.age } - { item.sex } </li>
                );
              })
            }
          </ul>
        </div>
      </div>
    );
  }
}
// 

相关文章

  • react 元素滚动 触底

    我不记得小时候的梦想了,但绝对不是买一套房子。 我的github: 李大玄[https://github.com/...

  • 滚动翻页

    利用根节点dom元素高度-可是区域高度-滚动条距顶部距离,得到的差值去判断,如果差值为0即滚动条触底,触发事件。

  • element Select组件封装 下拉框加上滚动加载

    本文是在element-ui的基础上优化的。需要操作dom元素,去监听scroll事件,然后当下拉滚动触底就执行自...

  • web前端:交互

    手势 swipe滚动 移动web滚动如何更smoothtouch 下拉刷新上拉/触底加载无限滚动懒加载 传统web...

  • 滚动下拉触底

    需要了解三个dom元素,分别是:clientHeight、offsetHeight、scrollTop。 clie...

  • JS实现滚动条触底加载更多

    原理 1.通过监听滚动区域DOM的scroll事件, 计算出触底 // 滚动可视区域高度 + 当前滚动位置 ===...

  • JS滚动条触底加载更多

    原理 通过监听滚动区域DOM的scroll事件, 计算出触底 触底后触发列表添加, 列表添加使用createDoc...

  • react上拉加载

    react上拉加载(元素,滚动条在元素上) js css 下次将列表页进入详情页之后,返回时,记录进入时的位置~~~

  • 滚动穿透问题

    问题描述 当浮层滚动触底时, 再次滑动浮层时, 浮层下面的页面会进行滚动, 即滚动穿透 解决办法 通过positi...

  • react 图片懒加载

    一、react中useEffect监听事件需要在组件卸载前清除 二、判断元素是否进入视图 三、滚动实时监听处理图片...

网友评论

      本文标题:react 元素滚动 触底

      本文链接:https://www.haomeiwen.com/subject/wftxsltx.html