vue.js上拉加载

注意事项:

1.overflow属性会导致滚动事件失效

2.连续下拉会导致数据加载时出现问题,给了1s的延迟

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>demo</title>
</head><style>* {margin: 0;padding: 0;}[v-cloak] {display: none !important;}html,body {width: 100%;height: 100%;/* overflow-x: hidden; *//* overflow: scroll; */}.empty {height: 800px;}
</style><body><div id="demo" v-cloak><div class="empty"></div><ul><li v-for="item in lists">item</li></ul><h2>{{paging.loadingMessage}}</h2></div>
</body>
<script src="vue.js"></script>
<script>var vum = new Vue({el: "#demo",data: {paging: {PageIndex: 1,PageSize: 10,isTrue: false,showLoading: false,loadingMessage: "上拉加载更多~"}, //分页lists: []},methods: {handleScroll() {var that = this;//判断滚动到底部if (document.body.scrollTop >= document.body.clientHeight - window.screen.availHeight) { //滚动高度>=页面高度-屏幕高度if (that.paging.isTrue) {setTimeout(function() {that.paging.PageIndex++;that.paging.showLoading = true;that.paging.loadingMessage = "正在加载中~";that.getList();}, 1000); //防止连续下拉that.paging.isTrue = false;}}},getList() {var that = this;let datas = [];for (let i = 0; i < 10; i++) {datas.push({i})}that.paging.PageIndex == 1 ? that.lists = datas : that.lists = that.lists.concat(datas);if (datas.length < that.paging.PageSize) {that.paging.isTrue = false;that.paging.loadingMessage = "暂时没有更多消息了哦~";} else {that.paging.isTrue = true;that.paging.loadingMessage = "上拉加载更多~";}}},mounted() {//监听滚动window.addEventListener('scroll', () => {this.handleScroll();});//初始加载数据setTimeout(() => {this.getList();}, 1000);}})
</script></html>

vue.js上拉加载相关推荐

  1. php mescroll,mescroll.js上拉加载下拉刷新组件使用详解

    本文实例为大家分享了上拉加载下拉刷新组件mescroll.js的具体代码,供大家参考,具体内容如下 使用注意事项: 1.引入的时候出问题及时看官方给出的解决方案(基本上都必须看): 2.react中一 ...

  2. js上拉加载ajax数据,原生ajax写的上拉加载实例

    上拉加载的思路 1 上拉加载是要把屏幕拉到最底部的时候触发ajax事件请求数据 2.所有要获取屏幕的高度 文档的高度 和滚动的高度 下面的代码是已经做好了兼容的可以直接拿来用 Javascript: ...

  3. vue 实现上拉加载下拉刷新(思路贼清晰)

    项目需要用到上拉刷新下拉加载 所以自己手动实现了一个 组件: <template><div class="my-scroll" :class="[scr ...

  4. vue 实现上拉加载下拉刷新(思路清晰)

    项目需要用到上拉刷新下拉加载 所以自己手动实现了一个 组件: <template><div class="my-scroll" :class="[scr ...

  5. vue vant上拉加载 下拉刷新

    index.vue <van-pull-refresh v-model="isLoading" @refresh="onRefresh"> < ...

  6. vue 实现上拉加载

    其实就是在 mounted添加 window.addEventListener("scroll", this.handleScroll, true); 实时获取 scrollTop ...

  7. 小程序解决上拉加载更多时数据超过1024KB

    参考: 如果解决小程序1024kb渲染之坑 小程序渲染数据超过 1024k 的解决办法 新手不会用组件,只能自己再弄一个简单一点的解决,直接上代码. app.js // arr 数组,len 长度, ...

  8. vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多

    一.思路分析和效果图 用vue来实现一个瀑布流效果,加载网络图片,同时有下拉刷新和上拉加载更多功能效果.然后针对这几个效果的实现,捋下思路: 根据加载数据的顺序,依次追加标签展示效果: 选择哪种方式实 ...

  9. 上拉加载_如何用Vue + Mint UI实现上拉加载更多

    引言: 上拉加载更多在移动端不论是在 app 里面还是在页面中都是必不可少的,以下是 mint-ui 中上拉加载更多的总结. 一.在项目中使用 mint-ui 需要先安装 查看官网 (1)安装:npm ...

最新文章

  1. iOS开发-开发总结
  2. 央视在世界杯高清直播中占了C位 它是怎么做到的?
  3. 数据结构 图的深度优先遍历 C
  4. 如何自学JSP。--摘抄http://hi.baidu.com/comasp
  5. 什么是Freedoc?Freedoc是什么?
  6. 2016年工作总结和计划
  7. 基于 Android NDK 的学习之旅-----环境搭建
  8. QT| C/C++之win98扫雷外挂增强版
  9. Bootstrap 3: 菜单居中 Center content in responsive bootstrap navbar
  10. python求解比一个给定的数字大的最小对称数
  11. Warning the user/local/mysql/data directory is not owned by the mysql user
  12. 综合评价方法之秩和比法(RSR)
  13. 【NLP】自然语言处理技术在自动生成足球比赛战报上的应用
  14. CameraLink传输协议
  15. Linux九阴真经之大伏魔拳残卷4 nginx(模型,安装配置,模块)
  16. 此 Google 帐号尚未与设备关联。要安装应用,请先访问设备上的 Play 商店应用。 了解详情
  17. C语言中的#if语句使用
  18. access调整字段顺序_Microsoft Access中的顺序行
  19. CentOS切换中文拼音安装包时:zw 不在 sudoers 文件中。此事将被报告。【记录】
  20. REXROTH力士乐减压阀3DR16P5-5X/100Y/00M

热门文章

  1. linux离线升级软件,Ubuntu离线升级方法
  2. Linux可以打开cdr文件吗,CDR 文件扩展名: 它是什么以及如何打开它?
  3. DataFrame行列求和,指定列求和,指定行求和
  4. dnf服务器消息,DNF:手游延期一周年,阿拉德之怒紧急加开服务器,上线还排队...
  5. 抖音新版抓包方案,绕过sslpinning 直接修改so 抓https数据包
  6. react16常见api以及原理剖析
  7. 不可不懂的UG编程片体转实体技巧
  8. 交通银行签约易观千帆,全面升级数智能力
  9. Uni-App - 模板语法 - 数据绑定
  10. 秦九韶算法如何应用到计算机,《秦九韶算法》说课稿——获奖说课稿