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 相关文章推荐
JavaScript中的跨浏览器事件操作的基本方法整理
May 20 Javascript
JS常用正则表达式总结【经典】
May 12 Javascript
使用angular帮你实现拖拽的示例
Jul 05 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
Jul 07 Javascript
vue 打包后的文件部署到express服务器上的方法
Aug 09 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
Jan 09 Javascript
集成vue到jquery/bootstrap项目的方法
Feb 10 jQuery
基于Axios 常用的请求方法别名(详解)
Mar 13 Javascript
JavaScript引用类型Array实例分析
Jul 24 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
Aug 31 Javascript
使用 vue 实现灭霸打响指英雄消失的效果附demo
May 06 Javascript
js实现菜单跳转效果
Dec 11 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
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
php 获取远程网页内容的函数
2009/09/08 PHP
PHP static局部静态变量和全局静态变量总结
2014/03/02 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
JavaScript 异步调用框架 (Part 2 - 用例设计)
2009/08/03 Javascript
被jQuery折腾得半死,揭秘为何jQuery为何在IE/Firefox下均无法使用
2010/01/22 Javascript
Jquery升级新版本后选择器的语法问题
2010/06/02 Javascript
jQuery遍历Table应用示例
2014/04/09 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
AngularJS实现表单验证功能
2017/01/09 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
2017/06/29 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
JS面向对象之多选框实现
2020/01/17 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
2020/11/12 Javascript
详解vue实现坐标拾取器功能示例
2020/11/18 Vue.js
python图像处理入门(一)
2019/04/04 Python
python中sys模块是做什么用的
2020/08/16 Python
pycharm配置安装autopep8自动规范代码的实现
2021/03/02 Python
Bootstrap File Input文件上传组件
2020/12/01 HTML / CSS
中国第一家杂志折扣订阅网:杂志铺
2016/08/30 全球购物
英国女士家居服网站:hush
2017/08/09 全球购物
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
全球才华横溢工匠的家居装饰、珠宝和礼物:NOVICA
2021/01/22 全球购物
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
两只小狮子教学反思
2014/02/05 职场文书
小学中秋节活动方案
2014/02/06 职场文书
捐款活动总结
2014/08/27 职场文书
建议书格式
2015/02/04 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
如何书写邀请函?
2019/06/24 职场文书
导游词之阳朔遇龙河
2019/12/16 职场文书
为Java项目添加Redis缓存的方法
2021/05/18 Redis
Python import模块的缓存问题解决方案
2021/06/02 Python