js上拉加载

时间:2021-04-19 19:58:24
<ul class="u-f-log">
<li class="u-f-log-alone" v-for="item in log">
<div class="u-f-log-alone-info">
<div class="iconfont icon-dingdan1"></div>
<!--<div v-if="item.type==2" class="iconfont icon-wode"></div>-->
<!--<div v-if="item.type==3" class="iconfont icon-fenxiang3"></div>-->
<div class="u-f-log-alone-info-text">
<div>{{item.remarks}}</div>
<div>{{item.active_time}}</div>
</div>
</div>
<div class="u-f-log-alone-price">+{{item.yongjin}}</div>
</li>
<li class="public-none" v-if="loading_over">~已经没有数据了~</li>
</ul>
data: {
log:[],
page: 1,
is_loading:false,
loading_over:false,
is_search: false,
init_search_list: true }
methods: {
getFanli: function(callback){
var that = this;
var layload
layer.ready(function(){
layload =layer.load();
});
that.$http.post("{:url('api/user/getMyFanli')}",{"_ajax": "1","page": that.page,token:localStorage.getItem('token'),"limit":14}, {emulateJSON: true}).then(function (res) {
console.log(res);
that.yue = res.data.data.money;
that.leiji = res.data.data.taotal_fanli;
that.dai = res.data.data.daifanli;
layer.close(layload);
if(that.page===1){
that.log = res.data.data.list;
}else{
for(var i in res.data.data.list){
that.log.push(res.data.data.list[i]);
}
}
that.page++;
that.$nextTick(function() {
if(res.data.data.list.length == 0) {
that.loading_over = true;
}
callback()
})
}, function (err) {
console.log(JSON.stringify(err));
});
}
}
mounted: function() {
var that = this;
that.getFanli(function(){});
window.onscroll = function(){
if(parseInt((getScrollTop() + getWindowHeight() + 100)) >= getScrollHeight()){
//此时滚动条已经下拉到底部啦
if(that.is_loading) {
return false;
}
if(that.loading_over) {
return false;
}
that.is_loading = true;
that.getFanli(function() {
that.is_loading = false;
});
}
};
}

js公共方法:

//滚动条在Y轴上的滚动距离
function getScrollTop(){
var scrollTop = 0, bodyScrollTop = 0, documentScrollTop = 0;
if(document.body){
bodyScrollTop = document.body.scrollTop;
}
if(document.documentElement){
documentScrollTop = document.documentElement.scrollTop;
}
scrollTop = (bodyScrollTop - documentScrollTop > 0) ? bodyScrollTop : documentScrollTop;
return scrollTop;
}
//文档的总高度
function getScrollHeight(){
var scrollHeight = 0, bodyScrollHeight = 0, documentScrollHeight = 0;
if(document.body){
bodyScrollHeight = document.body.scrollHeight;
}
if(document.documentElement){
documentScrollHeight = document.documentElement.scrollHeight;
}
scrollHeight = (bodyScrollHeight - documentScrollHeight > 0) ? bodyScrollHeight : documentScrollHeight;
return scrollHeight;
} //浏览器视口的高度
function getWindowHeight(){
var windowHeight = 0;
if(document.compatMode == "CSS1Compat"){
windowHeight = document.documentElement.clientHeight;
}else{
windowHeight = document.body.clientHeight;
}
return windowHeight;
}