zoukankan      html  css  js  c++  java
  • 页面到达底部,加载更多

    loadMore = (element, callback) => {
        let windowHeight = window.screen.height;
        let height;
        let setTop;
        let paddingBottom;
        let marginBottom;
        let requestFram;
        let oldScrollTop;
    
        document.body.addEventListener('scroll',() => {
           loadMore();
        }, false)
        //运动开始时获取元素 高度 和 offseTop, pading, margin
        element.addEventListener('touchstart',() => {
            height = element.offsetHeight;
            setTop = element.offsetTop;
            paddingBottom = getStyle(element,'paddingBottom');
            marginBottom = getStyle(element,'marginBottom');
        },{passive: true})
    
        //运动过程中保持监听 scrollTop 的值判断是否到达底部
        element.addEventListener('touchmove',() => {
           loadMore();
        },{passive: true})
    
        //运动结束时判断是否有惯性运动,惯性运动结束判断是非到达底部
        element.addEventListener('touchend',() => {
               oldScrollTop = document.body.scrollTop;
               moveEnd();
        },{passive: true})
        
        const moveEnd = () => {
            requestFram = requestAnimationFrame(() => {
                if (document.body.scrollTop != oldScrollTop) {
                    oldScrollTop = document.body.scrollTop;
                    loadMore();
                    moveEnd();
                }else{
                    cancelAnimationFrame(requestFram);
                    //为了防止鼠标抬起时已经渲染好数据从而导致重获取数据,应该重新获取dom高度
                    height = element.offsetHeight;
                    loadMore();
                }
            })
        }
    
        const loadMore = () => {
            if (document.body.scrollTop + windowHeight >= height + setTop + paddingBottom + marginBottom) {
                callback();
            }
        }
    }
  • 相关阅读:
    d3.js(v5.7)的比例尺以及坐标轴
    d3.js(v5.7)的node与数据匹配(自动匹配扩展函数)
    d3.js(v5.7)的attr()函数完善(添加obj支持)
    d3.js入门之DOM操作
    d3.js入门学习
    最近在写个人网站,忙碌中。。。
    构建vue项目(vue 2.x)时的一些配置问题(持续更新)
    Python之元组
    Python之列表
    Python之字符串
  • 原文地址:https://www.cnblogs.com/ruthless/p/10531850.html
Copyright © 2011-2022 走看看