上滑滚动时获取内容高度、屏幕高度和滚动高度(此处#sslist要为内容是id)

内容高度  let innerHeight = document.querySelector("#sslist").clientHeight;

屏幕高度 let outerHeight = document.documentElement.clientHeight;
滚动高度 let scrollTop = document.documentElement.scrollTop || document.body.scrollTop || window.pageYOffset;

代码:

 <template>
<div id="sslist">
<div class="readlist main">
<div class="read">
<h4 class="regulartitle"><i>S-SENTENCE - {{readcount}}</i><router-link to="/ssadd">addsentence</router-link></h4>
<ul class="booklist">
<li v-for="(item, index) in readLists">
{{item.content}}
</li>
</ul>
</div>
</div>
<div v-if="has_log == 0">
<span>上拉加载</span>
</div>
<div v-if="has_log == 1">
<span>正在加载</span>
</div>
<div v-if="has_log == 2">
<span>没有更多数据了</span>
</div>
</div>
</template>
<script>
export default{
name: 'sslist',
data(){
return {
readLists: [],
readcount: '',
list_param:{
page: 1,
pageLimit: 20
},
totalpages: 0, //总页数
has_log: 0, //显示提示 0-上拉加载 1-正在加载 2-没有更多数据了
no_data: false //是否还有数据
}
},
mounted(){
this.getList(); window.addEventListener('scroll', this.onScroll);
},
methods: {
onScroll(){
this.has_log = 1;
let innerHeight = document.querySelector("#sslist").clientHeight;
let outerHeight = document.documentElement.clientHeight;
let scrollTop = document.documentElement.scrollTop || document.body.scrollTop || window.pageYOffset; console.log(innerHeight + ' ' + outerHeight + ' ' + scrollTop); if(outerHeight + scrollTop === innerHeight){
if(this.no_data === true){
this.has_log = 2;
return false;
} this.getList(); } if(scrollTop < 0){
this.list_param.page = 1;
this.getList();
}
},
getList(){
var that = this;
this.axios.get("http://127.0.0.1/api/singlesentence/getlist.php",{params:that.list_param}).then((ret)=>{
if(ret.status == 200){
if(that.list_param.page == 1){
that.readLists = ret.data.lists;
}else{
that.readLists = that.readLists.concat(ret.data.lists);
} if(that.list_param.page < ret.data.totalpages){
that.list_param.page += 1;
}else{
that.no_data = true;
} that.readcount = ret.data.count;
that.totalpages = ret.data.totalpages;
}
})
}
}
}
</script>
<style>
</style>

vue项目上滑滚动加载更多&下拉刷新的更多相关文章

  1. mui的上拉加载更多 下拉刷新 自己封装的demo

    ----------------------------------------------- 这是一个非常呆萌的程序妹子,深夜码的丑代码------------------------------- ...

  2. mui实现分页上拉加载更多 下拉刷新数据的简单实现 移动端下拉上拉

    空下来把mui上拉加载更多,下拉刷新数据做了一个简单的实现,希望可以帮助到需要的朋友 demo项目的结构 <!DOCTYPE html> <html> <head> ...

  3. android ListView上拉加载更多 下拉刷新功能实现(采用pull-to-refresh)

    Android实现上拉加载更多功能以及下拉刷新功能, 采用了目前比较火的PullToRefresh,他是目前实现比较好的下拉刷新的类库. 目前他支持的控件有:ListView, ExpandableL ...

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

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

  5. 你必须了解的RecyclerView的五大开源项目-解决上拉加载、下拉刷新和添加Header、Footer等问题

    前段时间做项目由于采用的MD设计,所以必须要使用RecyclerView全面代替ListView.但是开发中遇到了需要实现RecyclerView上拉加载.下拉刷新和添加Header以及Footer等 ...

  6. vue使用vant-ui实现上拉加载、下拉刷新和返回顶部

    vue使用vant-ui实现上拉加载.下拉刷新和返回顶部 vue现在在移动端常用的ui库有vant-ui和mint-ui,上拉加载.下拉刷新和返回顶部也是移动端最基础最常见的功能.下面就用vant-u ...

  7. vue-scroller实现vue单页面的上拉加载和下拉刷新问题

    在vue中如何简单的实现页面的上拉加载和下拉刷新,在这里我推荐使用vue-scrolle插件. vue-scrolle的基本使用方法: 1.下载 npm i vue-scroller -D 2.导包 ...

  8. vue项目中上拉加载和下拉刷新页面的实现

    功能:上拉加载,下拉刷新 使用方法: 自己创建一个.vue的文件(我自己是创建了一个PullToRefresh.vue的文件),将代码粘贴进去,具体的样式问题自己在该文件中调整. <templa ...

  9. 使用mescroll实现上拉加载与下拉刷新

    现在上拉加载与下拉刷新几乎已经是移动端必备功能之一了,自己实现一个太麻烦,但是好用的插件又非常少.之前看到网上很多人都在用iScroll,于是也尝试用它做了几个DEMO,但或多或少都有一些问题,比如这 ...

随机推荐

  1. day4_python之三元表达式、列表推导式、生成器表达式

    一.三元表达式 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 二.列表解析 l = [] for ...

  2. APP上线前,如何做运营推广工作?

    http://www.cocoachina.com/market/20150723/12731.html 一 竞品分析 1.选择竞品,做好定位(选择两个产品最好,最多三个). 如何获取竞品? A 百度 ...

  3. 基于日志服务的GrowthHacking(1):数据埋点和采集(APP、Web、邮件、短信、二维码埋点技术)

    数据质量决定运营分析的质量 在上文中,我们介绍了GrowthHacking的整体架构,其中数据采集是整个数据分析的基础,只有有了数据,才能进行有价值的分析:只有高质量的数据,才能驱动高质量的运营分析. ...

  4. LeetCode108 Convert Sorted Array to Binary Search Tree

    Given an array where elements are sorted in ascending order, convert it to a height balanced BST. (M ...

  5. spingboot项目在windows环境中运行时接收参数及日志中文乱码

    1.logback.xml配置 appender中添加 <param name="Encoding" value="UTF-8" /> <co ...

  6. Charles配置信息

    1.下载Charles https://www.charlesproxy.com/download/ 2.破解 https://www.zzzmode.com/mytools/charles/ 或者 ...

  7. 10-1 body标签里面相关的标签(列表,表单,表格)

    一 列表标签<ul>,<ol>,<dl> <!DOCTYPE html> <html lang="en"> <he ...

  8. mybatis-generator1.3.6的使用

    下载地址: http://blog.mybatis.org/2017/12/mybatis-generator-version-136-released.html 参考了 http://blog.cs ...

  9. JVM -XX: 参数列表

    功能开关: 参数 默认值或限制 说明 参数 默认值 功能 -XX:-AllowUserSignalHandlers 限于Linux和Solaris,默认不启用 允许为java进程安装信号处理器,信号处 ...

  10. @noi.ac - 441@ 你天天努力

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 你天天努力,还是比不上小牛,因为小牛在家中套路.于是你决定去拜访 ...