iscroll-probe实现下拉刷新和下拉加载效果


Posted in Javascript onJune 28, 2017

需要注意的是外部wrapper的高度,以及all的高度,须是>100%。

附加一个css3 的loading

.dengl-spinner {
  width: 0.682rem;
  height: 0.682rem;
  position: relative;
  position: absolute;
  z-index: -1;
  left: 50%;
  margin-left: -0.341rem;
  top: 2.5rem;
}
.dengl-spinner1{
  width: 0.682rem;
  height: 0.682rem;
  position: relative;
  position: fixed;
  z-index: -1;
  left: 50%;
  margin-left: -0.341rem;
  bottom: 1.5rem;
}
.dengl-cube1, .dengl-cube2 {
  background-color: #f2513f;
  width: 0.682rem;
  height: 0.682rem;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-animation: cubemove 1.8s infinite ease-in-out;
  animation: cubemove 1.8s infinite ease-in-out;
}

.dengl-cube2 {
  -webkit-animation-delay: -0.9s;
  animation-delay: -0.9s;
}

@-webkit-keyframes cubemove {
  25% {
    -webkit-transform: translateX(1rem) rotate(-90deg) scale(0.5)
  }
  50% {
    -webkit-transform: translateX(1rem) translateY(1rem) rotate(-180deg)
  }
  75% {
    -webkit-transform: translateX(0px) translateY(1rem) rotate(-270deg) scale(0.5)
  }
  100% {
    -webkit-transform: rotate(-360deg)
  }
}

@keyframes cubemove {
  25% {
    transform: translateX(1rem) rotate(-90deg) scale(0.5);
    -webkit-transform: translateX(1rem) rotate(-90deg) scale(0.5);
  }
  50% {
    transform: translateX(1rem) translateY(1rem) rotate(-179deg);
    -webkit-transform: translateX(1rem) translateY(1rem) rotate(-179deg);
  }
  50.1% {
    transform: translateX(1rem) translateY(1rem) rotate(-180deg);
    -webkit-transform: translateX(1rem) translateY(1rem) rotate(-180deg);
  }
  75% {
    transform: translateX(0px) translateY(1rem) rotate(-270deg) scale(0.5);
    -webkit-transform: translateX(0px) translateY(1rem) rotate(-270deg) scale(0.5);
  }
  100% {
    transform: rotate(-360deg);
    -webkit-transform: rotate(-360deg);
  }
}

上下两个

<div class="dengl-spinner" style="top:17rem">
  <div class="dengl-cube1"></div>
  <div class="dengl-cube2"></div>
</div>

<div class="dengl-spinner1" style="bottom:3rem;">
  <div class="dengl-cube1"></div>
  <div class="dengl-cube2"></div>
</div>

下面是正文

<style>
    #wrapper {
      position: absolute;
      width: 100%;
      z-index: 1;
      top: 16.1rem;
      bottom: 2rem;
      left: 0;
      overflow: hidden;
    }

    #all {
      position: absolute;
      z-index: 1;
      -webkit-tap-highlight-color: rgba(0,0,0,0);
      width: 100%;
      -webkit-transform: translateZ(0);
      -moz-transform: translateZ(0);
      -ms-transform: translateZ(0);
      -o-transform: translateZ(0);
      transform: translateZ(0);
      -webkit-touch-callout: none;
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
      -webkit-text-size-adjust: none;
      -moz-text-size-adjust: none;
      -ms-text-size-adjust: none;
      -o-text-size-adjust: none;
      text-size-adjust: none;
      background: #fff;
      min-height: 100.5%;
    }
  </style>
<div id="wrapper">
            <ul id="all"></ul>
  </div>
var index = 2, size = 10;
    $(function () {
      $.qr.ajax('UserCenter/myJdAndMl', { token: $.qr.gettoken() }, function (d) {
        var vm1 = new Vue({
          el: '#top_1',
          data: {
            money: d.data_single.money
          }
        });
        var vm2 = new Vue({
          el: '#top_2',
          data: {
            earnings: d.data_single.earnings,
            has_catfood: d.data_single.has_catfood,
            not_catfood: d.data_single.not_catfood
          }
        });
      });
      var myScroll = new IScroll('#wrapper', {
        mouseWheel: false,
        bounceTime: 1000,
        bounceLock: true,
        probeType: 3
      });
      var handle = 0;
      myScroll.on('scroll', function () {
        if (this.y > 50) {
          handle = 1;
        } else if (this.y < (this.maxScrollY - 50)) {
          handle = 2;

        };
      });
      myScroll.on('scrollEnd', function () {
        if (handle == 2) {
          add(index, size);
        } else if (handle == 1) {
          add(1, size);
        }
        handle = 0;
        myScroll.refresh();
      });
      document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
      add(1, size);
    });
    function add(pindex, psize) {
      $.qr.ajax('UserCenter/maoliangRecordList',
        { token: $.qr.gettoken(), pagesize: psize, pageindex: pindex }, function (d) {
          var _h = '';
          if (pindex != 1 && d.data_list.data_list.length > 0) index++;
          if (d.data_list.data_list.length == 0) return false; 
          $(d.data_list.data_list).each(function (i, j) {
            _h += '<li>';
            _h += '<div class="info" style="left: 10%">' + j.name + '</div>';
            _h += '<div class="info">' + j.num + '</div>';
            _h += '<div class="info">' + j.time + '</div>';
            _h += '</li>';
          });
          if (pindex == 1) $('#all').empty();
          $('#all').append(_h);

        }, false);

    }

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

Javascript 相关文章推荐
JS Array对象入门分析
Oct 30 Javascript
javascript获取当前ip的代码
May 10 Javascript
基于jQuery的星级评分插件
Aug 12 Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
Oct 09 Javascript
PHP守护进程实例
Mar 06 Javascript
webpack入门必知必会
Jan 16 Javascript
xmlplus组件设计系列之图标(ICON)(1)
May 05 Javascript
JavaScript实现瀑布流图片效果
Jun 30 Javascript
vue 实现类似淘宝星级评分的示例
Mar 01 Javascript
vue实现可视化可拖放的自定义表单的示例代码
Mar 20 Javascript
利用H5api实现时钟的绘制(javascript)
Sep 13 Javascript
简单聊聊Vue中的计算属性和属性侦听
Oct 05 Vue.js
JavaScript 获取元素在父节点中的下标(推荐)
Jun 28 #Javascript
JS中把函数作为另一函数的参数传递方法(总结)
Jun 28 #Javascript
js+html制作简单日历的方法
Jun 27 #Javascript
ionic环境配置及问题详解
Jun 27 #Javascript
微信小程序 密码输入(源码下载)
Jun 27 #Javascript
Javascript实现base64的加密解密方法示例
Jun 27 #Javascript
微信小程序 空白页重定向解决办法
Jun 27 #Javascript
You might like
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
Javascript判断图片尺寸大小实例分析
2014/06/16 Javascript
jQuery简单动画变换效果实例分析
2016/07/04 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
Node.js使用Angular简单示例
2018/05/11 Javascript
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
Vue的双向数据绑定实现原理解析
2020/02/17 Javascript
node创建Vue项目步骤详解
2020/03/06 Javascript
[53:43]VP vs NewBee Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
[50:12]EG vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
python简单实现旋转图片的方法
2015/05/30 Python
django使用xlwt导出excel文件实例代码
2018/02/06 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
查看python安装路径及pip安装的包列表及路径
2019/04/03 Python
Python 使用元类type创建类对象常见应用详解
2019/10/17 Python
redis数据库及与python交互用法简单示例
2019/11/01 Python
Python使用进程Process模块管理资源
2020/03/05 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
介绍一下Make? 为什么使用make
2013/12/08 面试题
行政办公员自我评价分享
2013/12/14 职场文书
上班迟到检讨书
2014/01/10 职场文书
企业文化建设实施方案
2014/03/22 职场文书
2014年班主任工作总结
2014/11/08 职场文书
2014年乡镇团委工作总结
2014/12/18 职场文书
学生犯错保证书
2015/05/09 职场文书
Python中的np.argmin()和np.argmax()函数用法
2021/06/02 Python
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫