<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;
}

js上拉加载的更多相关文章

  1. zepto.js + iscroll.js上拉加载 下拉加载的 移动端 新闻列表页面

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...

  2. js上拉加载、下拉刷新的插件

    之前在网上找那种下拉刷新,上拉加载的插件,有一款IScroll,但是用起来太麻烦,于是就自己写了款,但依赖于jquery.js,bug肯定有,希望评论提出. js: /* 简洁的下拉刷新,上拉加载插件 ...

  3. js上拉加载下拉刷新

    写在前边: 工作需要,使用ajax在原来的列表下边使用ajax请求后台数据,拼接在列表最下边,在github转了好久,发现了一个bug极多的js刷新插件,尝试了一个下午,就在快放弃的时候,发现下边有留 ...

  4. JS 上拉加载

    $(document).ready( function(){ $contentLoadTriggered = false; $("#mainDiv").scroll(functio ...

  5. 原生js移动端touch事件实现上拉加载更多

    大家都知道jQuery里没有touch事件,所以在移动端使用原生js实现上拉加载效果还是很不错的,闲话不多说,代码如下: //获取要操作的元素 var objSection = document.ge ...

  6. JS+CSS实现的下拉刷新/上拉加载插件

    闲来无事,写了一个当下比较常见的下拉刷新/上拉加载的jquery插件,代码记录在这里,有兴趣将代码写成插件与npm包可以留言. 体验地址:http://owenliang.github.io/pull ...

  7. vue.js移动端app实战4:上拉加载以及下拉刷新

    上拉加载以及下拉刷新都是移动端很常见的功能,在搜索或者一些分类列表页面常常会用到. 跟横向滚动一样,我们还是采用better-scroll这个库来实现.由于better已经更新了新的版本,之前是0.几 ...

  8. 移动端下拉刷新上拉加载-mescroll.js插件

    最近无意间看到有这么一个上拉刷新下拉加载的插件 -- mescroll.js,个人感觉挺好用的,官网地址是:http://www.mescroll.com 然后我就看了一下文档,简单的写了一个小dem ...

  9. 【学习笔记】js下拉刷新、上拉加载 mescroll框架的使用

    写在前边: 工作需要,使用ajax在原来的列表下边使用ajax请求后台数据,拼接在列表最下边,在github转了好久,发现了一个bug极多的js刷新插件,尝试了一个下午,就在快放弃的时候,发现下边有留 ...

随机推荐

  1. java8学习之Supplier与函数式接口总结

    Supplier接口: 继续学习一个新的函数式接口--Supplier,它的中文意思为供应商.提供者,下面看一下它的javadoc: 而具体的方法也是相当的简单,就是不接受任何参数,返回一个结果: 对 ...

  2. Winform的高DPI问题

    现在的屏幕大部分都是高分屏,在这样的屏幕下开发winfrom软件就需要注意高DPI问题了 1.Form和UserControl的AutoScaleMode设置为Dpi 2.为项目添加应用程序清单文件( ...

  3. JAVA WEB初接触——简单的MVC架构

    1.概述 之前有过开发web的经验,因此我不会向无头苍蝇一般,心里还是有点数的

  4. Gradle 配置国内镜像

    项目级配置 在项目中找到如下文件 打开,添加上阿里云镜像 maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}

  5. iconv命令

    iconv 用法: Usage: iconv [OPTION...] [FILE...] Convert encoding of given files from one encoding to an ...

  6. JAVA-产生唯一32位GUID

    import java.net.*; import java.util.*; import java.security.*; import org.apache.log4j.Logger; /** * ...

  7. html 与 jsp 文件格式区别

    html 与 jsp 文件格式区别 html5 <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...

  8. 第一次 CSP-S 的游记

    菜得很啊菜得很! --PinkRabbit 第一次 CSP-S ,真的是 第一次. 作为一名初三学生,虽然是 第一次 参加 和NOIP没有任何关系 的 CSP-S ,总是要有点目标呀. 第一试 因为是 ...

  9. Prism框架中View与Region关联的几种方式

    Prism.Regions命名空间下有2个重要接口:IRegionManager.IRegion IRegionManager接口中的方法与属性:AddToRegion().RegisterViewW ...

  10. LabVIEW:可执行文件运行缺少运行库问题

    造冰箱的大熊猫@cnblogs 2018/5/11 上周调试设备网口犯了一个低级错误,今天又搞出一个笑话 目标机上没有LabVIEW开发环境,于是在开发机上将VI打包成可执行程序.在目标机上运行可执行 ...