vue实现的上拉加载更多数据/分页功能示例


Posted in Javascript onMay 25, 2019

本文实例讲述了vue实现的上拉加载更多数据/分页功能。分享给大家供大家参考,具体如下:

加载状态

<div v-if='has_log == 0'>
   <load-more tip="上拉加载" :show-loading="false" background-color="#fbf9fe"></load-more>
  </div>
  <div v-if='has_log == 1'>
   <load-more tip="正在加载" :show-loading="true"></load-more>
  </div>
  <div v-if='has_log == 2'>
    <load-more tip="没有更多数据了" :show-loading="false" background-color="#fbf9fe"></load-more>
  </div>

js

export default {
 name: '',
 data () {
  return {
   list: [],
   now_item: '',
   current_index: 0,
   list_param: {page: 1},
   no_data: false,
   has_log: 0
  }
 },
 components: {
  XInput
 },
 created () {
  this.get('/api/index/index', this.list_param).then((data) => {
   this.list = data.data.data
   this.list_param.page += 1
  })
  window.addEventListener('scroll', this.onScroll)
 },
 methods: {
  onScroll () {
   this.has_log = 1
   let innerHeight = document.querySelector('#app').clientHeight
   let outerHeight = document.documentElement.clientHeight
   let scrollTop = document.documentElement.scrollTop
   // console.log(innerHeight + ' ' + outerHeight + ' ' + scrollTop)
   // console.log(outerHeight + scrollTop - 30)
   // console.log(innerHeight)
   if (outerHeight + scrollTop === innerHeight + 57) {
    if (this.no_data === true) {
     this.has_log = 2
     return false
    }
    this.get('/api/index/index', this.list_param).then((data) => {
     if (data.data.data.length > 0) {
      this.list = [...this.list, ...data.data.data]
      this.list_param.page = this.list_param.page + 1
      this.has_log = 0
     } else {
      this.has_log = 2
      this.no_data = true
     }
    })
   }
  }
 }
}

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
JS JavaScript获取Url参数,src属性参数
Mar 09 Javascript
JSON 学习之JSON in JavaScript详细使用说明
Feb 23 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
Sep 14 Javascript
关于innerHTML后丢失动态绑定的EVENT问题解决方法
May 19 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
Aug 25 Javascript
JS 实现点击a标签的时候让其背景更换
Oct 15 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
Oct 17 Javascript
实用框架(iframe)操作代码
Oct 23 Javascript
Vuex之理解Getters的用法实例
Apr 19 Javascript
深入理解vue-loader如何使用
Jun 06 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
Jul 18 Javascript
微信小程序表单验证form提交错误提示效果
Jun 19 Javascript
vue实现的请求服务器端API接口示例
May 25 #Javascript
Vue Autocomplete 自动完成功能简单示例
May 25 #Javascript
泛谈JS逻辑判断选择器 || &amp;&amp;
May 24 #Javascript
了解JavaScript中的选择器
May 24 #Javascript
Javascript通过控制类名更改样式
May 24 #Javascript
redux.js详解及基本使用
May 24 #Javascript
javascript获取元素的计算样式
May 24 #Javascript
You might like
改德生G88 - 加装等响度低音提升电路
2021/03/02 无线电
PHP中预定义的6种接口介绍
2015/05/12 PHP
使用jspdf生成pdf报表
2015/07/03 Javascript
JavaScript中判断两个字符串是否相等的方法
2015/07/07 Javascript
ArtEditor富文本编辑器增加表单提交功能
2016/04/18 Javascript
使用jQuery UI库开发Web界面的简单入门指引
2016/04/22 Javascript
js中数组的常用方法小结
2016/12/30 Javascript
vue-cli + sass 的正确打开方式图文详解
2017/10/27 Javascript
详解Vue中数组和对象更改后视图不刷新的问题
2018/09/21 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
2018/11/05 Javascript
js实现整体缩放页面适配移动端
2020/03/31 Javascript
python 布尔操作实现代码
2013/03/23 Python
python映射列表实例分析
2015/01/26 Python
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
python中子类调用父类函数的方法示例
2017/08/18 Python
Python连接phoenix的方法示例
2017/09/29 Python
python代码实现ID3决策树算法
2017/12/20 Python
Python爬取qq空间说说的实例代码
2018/08/17 Python
Python使用sqlalchemy模块连接数据库操作示例
2019/03/13 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
对tensorflow 中tile函数的使用详解
2020/02/07 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
2020/02/25 Python
基于python实现音乐播放器代码实例
2020/07/01 Python
HTML5+CSS3实现拖放(Drag and Drop)示例
2014/07/07 HTML / CSS
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
JNI的定义
2012/11/25 面试题
C#实现启动一个进程
2016/10/01 面试题
2014年迎新年联欢会活动策划方案
2014/02/26 职场文书
学校教师安全责任书
2014/07/23 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书
应聘教师自荐信
2015/03/26 职场文书
党员承诺书格式范文
2015/04/28 职场文书
庆七一活动简报
2015/07/20 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
Python基础之常用库常用方法整理
2021/04/30 Python