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 相关文章推荐
用jQuery实现检测浏览器及版本的脚本代码
Jan 22 Javascript
js实现对ajax请求面向对象的封装
Jan 08 Javascript
javascript模块化简单解析
Apr 07 Javascript
分享10个优化代码的CSS和JavaScript工具
May 11 Javascript
AngularJS基础 ng-value 指令简单示例
Aug 03 Javascript
点击页面任何位置隐藏div的实现方法
Sep 05 Javascript
微信小程序  简单实例(阅读器)的实例开发
Sep 29 Javascript
js仿百度音乐全选操作
Jan 13 Javascript
js正则表达式校验指定字符串的方法
Jul 23 Javascript
vue左侧菜单,树形图递归实现代码
Aug 24 Javascript
js实现json数组分组合并操作示例
Feb 12 Javascript
vue-quill-editor的使用及个性化定制操作
Aug 04 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实现定时生成HTML网站首页实例代码
2008/11/20 PHP
php 什么是PEAR?(第三篇)
2009/03/19 PHP
初次接触php抽象工厂模式(Elgg)
2010/03/21 PHP
五款常用mysql slow log分析工具的比较分析
2011/05/22 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
2016/05/20 PHP
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
使用jQuery插件创建常规模态窗口登陆效果
2013/08/23 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
JavaScript记录光标在编辑器中位置的实现方法
2016/04/22 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
2016/05/05 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
2016/12/23 Javascript
jquery拖动改变div大小
2017/07/04 jQuery
详解如何使用babel进行es6文件的编译
2018/05/29 Javascript
js核心基础之构造函数constructor用法实例分析
2019/05/11 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
2019/05/22 Javascript
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
python安装numpy&amp;安装matplotlib&amp; scipy的教程
2017/11/02 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
django下创建多个app并设置urls方法
2020/08/02 Python
Python基于Serializer实现字段验证及序列化
2020/11/04 Python
中国网上药店领导者:1药网
2017/02/16 全球购物
CLR与IL分别是什么含义
2016/08/23 面试题
银行实习鉴定
2013/12/13 职场文书
业绩考核岗位职责
2014/02/01 职场文书
工艺员岗位职责
2014/02/11 职场文书
2015入党个人自传范文
2015/06/26 职场文书
初中生物教学随笔
2015/08/15 职场文书
公司董事任命书
2015/09/21 职场文书
党性修养心得体会2016
2016/01/21 职场文书