vue项目上滑滚动加载更多&下拉刷新
上滑滚动时获取内容高度、屏幕高度和滚动高度(此处#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项目上滑滚动加载更多&下拉刷新的更多相关文章
- mui的上拉加载更多 下拉刷新 自己封装的demo
----------------------------------------------- 这是一个非常呆萌的程序妹子,深夜码的丑代码------------------------------- ...
- mui实现分页上拉加载更多 下拉刷新数据的简单实现 移动端下拉上拉
空下来把mui上拉加载更多,下拉刷新数据做了一个简单的实现,希望可以帮助到需要的朋友 demo项目的结构 <!DOCTYPE html> <html> <head> ...
- android ListView上拉加载更多 下拉刷新功能实现(采用pull-to-refresh)
Android实现上拉加载更多功能以及下拉刷新功能, 采用了目前比较火的PullToRefresh,他是目前实现比较好的下拉刷新的类库. 目前他支持的控件有:ListView, ExpandableL ...
- vue.js移动端app实战4:上拉加载以及下拉刷新
上拉加载以及下拉刷新都是移动端很常见的功能,在搜索或者一些分类列表页面常常会用到. 跟横向滚动一样,我们还是采用better-scroll这个库来实现.由于better已经更新了新的版本,之前是0.几 ...
- 你必须了解的RecyclerView的五大开源项目-解决上拉加载、下拉刷新和添加Header、Footer等问题
前段时间做项目由于采用的MD设计,所以必须要使用RecyclerView全面代替ListView.但是开发中遇到了需要实现RecyclerView上拉加载.下拉刷新和添加Header以及Footer等 ...
- vue使用vant-ui实现上拉加载、下拉刷新和返回顶部
vue使用vant-ui实现上拉加载.下拉刷新和返回顶部 vue现在在移动端常用的ui库有vant-ui和mint-ui,上拉加载.下拉刷新和返回顶部也是移动端最基础最常见的功能.下面就用vant-u ...
- vue-scroller实现vue单页面的上拉加载和下拉刷新问题
在vue中如何简单的实现页面的上拉加载和下拉刷新,在这里我推荐使用vue-scrolle插件. vue-scrolle的基本使用方法: 1.下载 npm i vue-scroller -D 2.导包 ...
- vue项目中上拉加载和下拉刷新页面的实现
功能:上拉加载,下拉刷新 使用方法: 自己创建一个.vue的文件(我自己是创建了一个PullToRefresh.vue的文件),将代码粘贴进去,具体的样式问题自己在该文件中调整. <templa ...
- 使用mescroll实现上拉加载与下拉刷新
现在上拉加载与下拉刷新几乎已经是移动端必备功能之一了,自己实现一个太麻烦,但是好用的插件又非常少.之前看到网上很多人都在用iScroll,于是也尝试用它做了几个DEMO,但或多或少都有一些问题,比如这 ...
随机推荐
- python基础总结篇
''' 数据类型 数值 int: 字符串转int,只能转纯数字组成的字符串 小数,去掉小数部分 bool,true 1 false 0 float: 字符串转float,要么是纯数字的字符串,要么是纯 ...
- Nginx设置静态页面压缩和缓存过期时间的方法 (转)
使用nginx服务器的朋友可能都知道需要设置html静态页面缓存与页面压缩与过期时间的设置了,下面我来给各位同学介绍一下配置方法,包括对ico,gif,bmp,jpg,jpeg,swf,js,css, ...
- day39-Spring 01-上次课内容回顾
- PLAY2.6-SCALA(五) Action的组合、范围的设置以及错误的处理
一.自定义action 从一个日志装饰器的例子开始 1.在invokeBlock方法中实现 import play.api.mvc._ class LoggingAction @Inject() (p ...
- uniapp APP端使用指纹
使用插件指纹模板: https://ext.dcloud.net.cn/plugin?id=358 Fingerprint模块管理指纹识别 要使用指纹识别功能需要具备条件: 确认当前设备环境是否支持指 ...
- CSS常用函数calc等
>>CSS常用函数<<
- Codeforces Round #167 (Div. 1 + Div. 2)
C. Dima and Staircase 线段树维护区间最大值. D. Dima and Two Sequences 由于模数不一定为质数,所以通过拆分质因数来做阶乘取模. E. Dima and ...
- 洛谷P5022 旅行 题解 去环/搜索
题目链接:https://www.luogu.org/problem/P5022 这道题目一开始看的时候没有思路,但是看到数据范围里面有一个: \(m = n-1\) 或 \(m = n\) ,一下子 ...
- H3C 帧中继基本概念
- 【知识小结】Git 个人学习笔记及心得
https://mp.weixin.qq.com/s/D96dXYfu3XAA4ac456qo0g git架构 工作区:就是你在电脑里能看到的目录. 版本库:工作区有一个隐藏目录.git,,而是Git ...