vue2 mint-ui loadmore实现下拉刷新,上拉更多功能


Posted in Javascript onMarch 21, 2018

mintui是饿了么团队针对vue开发的移动端组件库,方便实现移动端的一些功能,这里主要给大家介绍vue2 mint-ui loadmore实现下拉刷新,上拉更多功能,具体代码如下所示:

<template>
 <div class="page-loadmore">
  <h1 class="page-title">Pull up</h1>
  <p class="page-loadmore-desc">在列表底部, 按住 - 上拉 - 释放可以获取更多数据</p>
  <p class="page-loadmore-desc">translate : {{ translate }}</p>
  <div class="loading-background" :style="{ transform: 'scale3d(' + moveTranslate + ',' + moveTranslate + ',1)' }">
   translateScale : {{ moveTranslate }}
  </div>
  <div class="page-loadmore-wrapper" ref="wrapper" :style="{ height: wrapperHeight + 'px' }">
   <mt-loadmore :top-method="loadTop" @translate-change="translateChange" @top-status-change="handleTopChange"    :bottom-method="loadBottom" @bottom-status-change="handleBottomChange" :bottom-all-loaded="allLoaded" ref="loadmore">
    <ul class="page-loadmore-list">
     <li v-for="item in list" class="page-loadmore-listitem">{{ item }}</li>
    </ul>
    <div slot="top" class="mint-loadmore-top">
     <span v-show="topStatus !== 'loading'" :class="{ 'is-rotate': topStatus === 'drop' }">↓</span>
     <span v-show="topStatus === 'loading'">
      <mt-spinner type="snake"></mt-spinner>
     </span>
    </div>
    <div slot="bottom" class="mint-loadmore-bottom">
     <span v-show="bottomStatus !== 'loading'" :class="{ 'is-rotate': bottomStatus === 'drop' }">↑</span>
     <span v-show="bottomStatus === 'loading'">
      <mt-spinner type="snake"></mt-spinner>
     </span>
    </div>
   </mt-loadmore>
  </div>
 </div>
</template>
<style>
 .loading-background, .mint-loadmore-top span {
  -webkit-transition: .2s linear;
  transition: .2s linear
 }
 .mint-loadmore-top span {
  display: inline-block;
  vertical-align: middle
 }
 .mint-loadmore-top span.is-rotate {
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg)
 }
 .page-loadmore .mint-spinner {
  display: inline-block;
  vertical-align: middle
 }
 .page-loadmore-desc {
  text-align: center;
  color: #666;
  padding-bottom: 5px
 }
 .page-loadmore-desc:last-of-type,
 .page-loadmore-listitem {
  border-bottom: 1px solid #eee
 }
 .page-loadmore-listitem {
  height: 50px;
  line-height: 50px;
  text-align: center
 }
 .page-loadmore-listitem:first-child {
  border-top: 1px solid #eee
 }
 .page-loadmore-wrapper {
  overflow: scroll
 }
 .mint-loadmore-bottom span {
  display: inline-block;
  -webkit-transition: .2s linear;
  transition: .2s linear;
  vertical-align: middle
 }
 .mint-loadmore-bottom span.is-rotate {
  -webkit-transform: rotate(180deg);
  transform: rotate(180deg)
 }
</style>
<script type="text/babel">
 export default {
  data() {
   return {
    list: [],
    allLoaded: false,
    bottomStatus: '',
    wrapperHeight: 0,
    topStatus: '',
    //wrapperHeight: 0,
    translate: 0,
    moveTranslate: 0
   };
  },
  methods: {
   handleBottomChange(status) {
    this.bottomStatus = status;
   },
   loadBottom() {
    setTimeout(() => {
     let lastValue = this.list[this.list.length - 1];
     if (lastValue < 40) {
      for (let i = 1; i <= 10; i++) {
       this.list.push(lastValue + i);
      }
     } else {
      this.allLoaded = true;
     }
     this.$refs.loadmore.onBottomLoaded();
    }, 1500);
   },
   handleTopChange(status) {
    this.moveTranslate = 1;
    this.topStatus = status;
   },
   translateChange(translate) {
    const translateNum = +translate;
    this.translate = translateNum.toFixed(2);
    this.moveTranslate = (1 + translateNum / 70).toFixed(2);
   },
   loadTop() {
    setTimeout(() => {
     let firstValue = this.list[0];
     for (let i = 1; i <= 10; i++) {
      this.list.unshift(firstValue - i);
     }
     this.$refs.loadmore.onTopLoaded();
    }, 1500);
   },
  },
  created() {
   for (let i = 1; i <= 20; i++) {
    this.list.push(i);
   }
  },
  mounted() {
   this.wrapperHeight = document.documentElement.clientHeight - this.$refs.wrapper.getBoundingClientRect().top;
  }
 };
</script>

总结

以上所述是小编给大家介绍的vue2 mint-ui loadmore实现下拉刷新,上拉更多功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 兼容FF的onmouseenter和onmouseleave的代码
Jul 19 Javascript
JavaScript CSS修改学习第五章 给“上传”添加样式
Feb 19 Javascript
javascript获取xml节点的最大值(实现代码)
Dec 11 Javascript
js中将String转换为number以便比较
Jul 08 Javascript
JavaScript使用slice函数获取数组部分元素的方法
Apr 06 Javascript
JS组件Bootstrap实现下拉菜单效果代码
Apr 26 Javascript
简单易懂的天气插件(代码分享)
Feb 04 Javascript
在node中如何使用 ES6
Apr 22 Javascript
vue.js实例todoList项目
Jul 07 Javascript
React进阶学习之组件的解耦之道
Aug 07 Javascript
vue2.0 better-scroll 实现移动端滑动的示例代码
Jan 25 Javascript
详解Express笔记之动态渲染HTML(新手入坑)
Dec 13 Javascript
javascript与PHP动态往类中添加方法对比
Mar 21 #Javascript
详解PHP后期静态绑定分析与应用
Mar 21 #Javascript
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
Mar 21 #Javascript
用p5.js制作烟花特效的示例代码
Mar 21 #Javascript
AngularJS监听ng-repeat渲染完成的方法
Mar 20 #Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
Mar 20 #Javascript
webpack本地开发环境无法用IP访问的解决方法
Mar 20 #Javascript
You might like
一个ORACLE分页程序,挺实用的.
2006/10/09 PHP
PHP大转盘中奖概率算法实例
2014/10/21 PHP
smarty模板引擎从配置文件中获取数据的方法
2015/01/22 PHP
php动态添加url查询参数的方法
2015/04/14 PHP
针对PHP开发安全问题的相关总结
2019/03/22 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
js宝典学习笔记(上)
2007/01/10 Javascript
javascript 全等号运算符使用说明
2010/05/31 Javascript
用jquery实现输入框获取焦点消失文字
2013/04/27 Javascript
js操作数组函数实例小结
2015/12/10 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
2016/06/12 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
2016/11/22 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
2017/09/11 Javascript
jquery实现选项卡切换代码实例
2019/05/14 jQuery
微信小程序 网络通信实现详解
2019/07/23 Javascript
javascript面向对象程序设计实践常用知识点总结
2019/07/29 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
python对DICOM图像的读取方法详解
2017/07/17 Python
python利用urllib和urllib2访问http的GET/POST详解
2017/09/27 Python
PyQt5实现下载进度条效果
2018/04/19 Python
浅谈Python中的全局锁(GIL)问题
2019/01/11 Python
详解Python3 基本数据类型
2019/04/19 Python
基于python的列表list和集合set操作
2019/11/24 Python
详解Python多线程下的list
2020/07/03 Python
python使用opencv resize图像不进行插值的操作
2020/07/05 Python
HTML 5 input placeholder 属性如何完美兼任ie
2014/05/12 HTML / CSS
Amara德国:家居饰品、设计师品牌和豪华礼品
2019/05/20 全球购物
毕业生简单求职信
2013/11/19 职场文书
创先争优宣传标语
2014/10/08 职场文书
党员查摆问题及整改措施
2014/10/10 职场文书
工作检讨书500字
2014/10/19 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
民事辩护词范文
2015/05/21 职场文书
歼十出击观后感
2015/06/11 职场文书