// 节流函数 var timer, flag; var loaded = true; var throttle = function(func, wait = 1000){ if (!flag) { flag = true; if(document.getElementById('pageLoading')){ document.getElementById('pageLoading').classList.remove('none'); } if(document.getElementById('pageNoMore')){ document.getElementById('pageNoMore').classList.add('none'); } // 如果是立即执行,则在wait毫秒内开始时执行 typeof func === 'function' && func(); timer = setTimeout(() => { flag = false; }, wait); } } window.onscroll = function() { var a = getScrollTop(); var b = getClientHeight(); var c = getScrollHeight(); if(c - b - a < 1){ // 滚动到底部加载新数据 throttle(fetchData_list); } } // 获取当前滚动条的位置 function getScrollTop() { var scrollTop = 0; if (document.documentElement && document.documentElement.scrollTop) { scrollTop = document.documentElement.scrollTop; } else if (document.body) { scrollTop = document.body.scrollTop; } return scrollTop; } // 获取当前可视范围的高度 function getClientHeight() { var clientHeight = 0; if (document.body.clientHeight && document.documentElement.clientHeight) { clientHeight = Math.min(document.body.clientHeight, document.documentElement.clientHeight); } else { clientHeight = Math.max(document.body.clientHeight, document.documentElement.clientHeight); } return clientHeight; } // 获取文档完整的高度 function getScrollHeight() { return Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); }