滚动-加载下一页-防止多次触发下一页数据等返回回来数据,再操作再进行触发下一页数据
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>滚动-加载下一页-防止多次触发下一页数据等返回回来数据,再操作再进行触发下一页数据</title>
<style>
*{
margin:0px;
padding: 0px;
}
#app{
width:100px;
height: 1000px;
background: grey;
}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(function(){
console.log($(document).height())
//是获取整个页面的高度 自己设定的,比如#app是1000的高度,这就是1000
console.log($(window).height())
//是获取当前 也就是你浏览器所能看到的页面的那部分的高度.这个大小在你缩放浏览器窗口大小时会改变,与document是不一样的。可视区域,不要f12后打开的高度
console.log($(document).scrollTop())
//如果$(document).height()是1000,$(window).height()是400,滚动条滚动到最底下$(document).scrollTop()是600的高度
//所以触发下一页数据的时候,$(document).scrollTop()接近600,可以为599,就开始加载下一页数据了
//为了防止多次触发调用下一页数据,用了个开关,如下
var isbool=true;//触发开关,防止多次调用事件
$(window).scroll(function(){
if( ($(document).scrollTop()>=$(document).height()-$(window).height()-5) && isbool==true ){
isbool=false;
console.log("aa");
setTimeout(()=>{
isbool=true;
console.log("aaa");
},5000)
}
});
})
</script>
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>