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 相关文章推荐
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
Oct 31 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
Dec 08 Javascript
js触发onchange事件的方法说明
Mar 08 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
Feb 20 Javascript
seajs模块之间依赖的加载以及模块的执行
Oct 21 Javascript
深入浅出理解JavaScript高级定时器原理与用法
Aug 02 Javascript
让webpack+vue-cil项目不再自动打开浏览器的方法
Sep 27 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
Jan 23 Javascript
Vue框架TypeScript装饰器使用指南小结
Feb 18 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
Aug 13 Javascript
layui自定义工具栏的方法
Sep 19 Javascript
如何使用vue slot创建一个模态框的实例代码
May 24 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
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
2015/03/26 PHP
php计算两个坐标(经度,纬度)之间距离的方法
2015/04/17 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
2015/05/13 PHP
Smarty模板简单配置与使用方法示例
2016/05/23 PHP
广告切换效果(缓动切换)
2009/05/27 Javascript
js 设置选中行的样式的实现代码
2010/05/24 Javascript
JavaScript 注册事件代码
2011/01/27 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
js获取url中的参数且参数为中文时通过js解码
2014/03/19 Javascript
javascript中定义类的方法汇总
2014/12/28 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
2015/08/06 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
[49:40]2018DOTA2亚洲邀请赛小组赛 A组加赛 TNC vs Newbee
2018/04/03 DOTA
Python进行数据科学工作的简单入门教程
2015/04/01 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
Python Dataframe 指定多列去重、求差集的方法
2018/07/10 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
Python 跨.py文件调用自定义函数说明
2020/06/01 Python
《冬阳童年骆驼队》教学反思
2014/04/15 职场文书
厉行勤俭节约倡议书
2014/05/16 职场文书
酒后驾车标语
2014/06/30 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
申报材料格式
2014/12/30 职场文书
金秋助学感谢信
2015/01/21 职场文书
2015年乡镇人大工作总结
2015/04/22 职场文书
团组织推荐意见
2015/06/05 职场文书
公司借款担保书
2015/09/22 职场文书
励志语录:只有自己足够强大,才能不被别人践踏
2020/01/09 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
Python语言规范之Pylint的详细用法
2021/06/24 Python
python turtle绘制多边形和跳跃和改变速度特效
2022/03/16 Python