vue-mugen-scroll组件实现pc端滚动刷新


Posted in Javascript onAugust 16, 2019

由于工作的原因,现在需要实现一个滚动加载(PC端)的效果,之前使用的是vue+element,但是element没有类似的组件,所以去github上找了一个名叫vue-mugen-scroll,使用起来很简单也很方便,所以给大家分享一下如果使用。

一、准备工作

首先需要安装一下组件: 

npm install --save vue-mugen-scroll

不需要全局引用,在需要的地方引用即可:

import MugenScroll from "vue-mugen-scroll";
export default {
 components: { MugenScroll }
};

二、编码

直接上代码

<template>
 <section>
 <div id="user-table" ref="user-table">
  <div>
  <el-table :data="tableDate" border style="width: 100%">
   <el-table-column prop="name" label="用户姓名"></el-table-column>
  </el-table>
  </div>
  <mugen-scroll :handler="loadMore" :should-handle="!loading" scroll-container="user-table">
  </mugen-scroll>
 </div>
 </section>
</template>
 
<script>
import MugenScroll from "vue-mugen-scroll";
export default {
 name: "app",
 components: { MugenScroll },
 data() {
 return {
  // 加载状态
  loading: false,
  // 当前页数
  page: 1,
  // 总页数
  pageTotal: 3,
  pagesize: 10,
  // 模拟后端返回的数据
  datas: [
  { id: "1", name: "用户1" },
  { id: "2", name: "用户2" },
  { id: "3", name: "用户3" },
  { id: "4", name: "用户4" },
  { id: "5", name: "用户5" },
  { id: "6", name: "用户6" },
  { id: "7", name: "用户7" },
  { id: "8", name: "用户8" },
  { id: "9", name: "用户9" },
  { id: "10", name: "用户10" },
  { id: "11", name: "用户11" },
  { id: "12", name: "用户12" },
  { id: "13", name: "用户13" },
  { id: "14", name: "用户14" },
  { id: "15", name: "用户15" },
  { id: "16", name: "用户16" },
  { id: "17", name: "用户17" },
  { id: "18", name: "用户18" },
  { id: "19", name: "用户19" },
  { id: "20", name: "用户20" },
  { id: "21", name: "用户21" },
  { id: "22", name: "用户22" },
  { id: "23", name: "用户23" },
  { id: "24", name: "用户24" },
  { id: "25", name: "用户25" },
  { id: "26", name: "用户26" },
  { id: "27", name: "用户27" }
  ],
  // 列表中的数据
  tableDate: []
 };
 },
 methods: {
 // 加载更多
 loadMore() {
  // 是否当前page不是最后一页
  if (this.page <= this.pageTotal) {
  console.log("loadMore...");
  this.loading = true;
  // 模拟分页查询
  let startIndex = (this.page - 1) * this.pagesize;
  let endIndex = startIndex + this.pagesize;
  this.tableDate.push(...this.datas.slice(startIndex, endIndex));
  // 页码+1
  this.page++;
  console.log(this.tableDate);
  this.loading = false;
  }
 }
 }
};
</script>
<style scoped>
#user-table {
 width: 400px;
 height: 400px;
 overflow-y: scroll;
 margin: 100px auto;
}
</style>

说明一下,这里最主要的就是<mugen-scroll>这个标签,should-handle属性就是是否需要执行加载方法,handler就是加载的具体方法,scroll-container就是指向的元素的ref,需要注意的是,需要滚动加载的元素,如#user-table,需要设置它的具体高度,而且要设置滚动条,就像我在<style>写到的,不然没有效果。

三、效果图

初始效果

vue-mugen-scroll组件实现pc端滚动刷新

滚动后的效果

vue-mugen-scroll组件实现pc端滚动刷新

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
使用apply方法处理数组的三个技巧[译]
Sep 20 Javascript
JavaScript快速检测浏览器对CSS3特性的支持情况
Sep 26 Javascript
Javascript中各种trim的实现详细解析
Dec 10 Javascript
浮动的div自适应居中显示的js代码
Dec 23 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
Mar 18 Javascript
JS实现超精简响应鼠标显示二级菜单代码
Sep 12 Javascript
js面向对象编程总结
Feb 16 Javascript
js实现百度登录框鼠标拖拽效果
Mar 07 Javascript
AngularJS路由Ui-router模块用法示例
May 29 Javascript
angular中不同的组件间传值与通信的方法
Nov 04 Javascript
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
May 17 jQuery
解决layui的input独占一行的问题
Sep 10 Javascript
JavaScript的查询机制LHS和RHS解析
Aug 16 #Javascript
jquery树形插件zTree高级使用详解
Aug 16 #jQuery
微信小程序云开发如何实现数据库自动备份实现
Aug 16 #Javascript
jQuery zTree树插件的使用教程
Aug 16 #jQuery
Vue 权限控制的两种方法(路由验证)
Aug 16 #Javascript
JS中的算法与数据结构之列表(List)实例详解
Aug 16 #Javascript
jQuery zTree插件快速实现目录树
Aug 16 #jQuery
You might like
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
php学习笔记 PHP面向对象的程序设计
2011/06/13 PHP
解析thinkphp基本配置 convention.php
2013/06/18 PHP
php获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
thinkPHP5.0框架应用请求生命周期分析
2017/03/25 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
PHP大文件分块上传功能实例详解
2019/07/22 PHP
YII2框架中behavior行为的理解与使用方法示例
2020/03/13 PHP
JavaScript 10件让人费解的事情
2010/02/15 Javascript
在IE6下发生Internet Explorer cannot open the Internet site错误
2010/06/21 Javascript
javascript正则表达式模糊匹配IP地址功能示例
2017/01/06 Javascript
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
2017/01/24 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
2018/01/26 Javascript
微信小程序排坑指南详解
2018/05/23 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
2019/04/09 Javascript
vue+webpack 更换主题N种方案优劣分析
2019/10/28 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
Vue v-for中的 input 或 select的值发生改变时触发事件操作
2020/08/31 Javascript
[53:20]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 VG vs OG
2018/04/03 DOTA
python3.0 字典key排序
2008/12/24 Python
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
2016/06/13 Python
基于Python闭包及其作用域详解
2017/08/28 Python
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
如何理解Python中包的引入
2020/05/29 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
Python控制鼠标键盘代码实例
2020/12/08 Python
解决PyCharm无法使用lxml库的问题(图解)
2020/12/22 Python
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
行政助理岗位职责范文
2013/12/03 职场文书
人力资源作业细则
2014/03/03 职场文书
党性观念心得体会
2014/09/03 职场文书
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python
redis缓存存储Session原理机制
2021/11/20 Redis