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 相关文章推荐
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
Mar 06 Javascript
javascript实现的动态文字变换
Jul 28 Javascript
jquery中的查找parents与closest方法之间的区别
Dec 02 Javascript
javascript制作2048游戏
Mar 30 Javascript
JQuery中DOM事件绑定用法详解
Jun 13 Javascript
vue2.0中click点击当前li实现动态切换class
Jun 21 Javascript
react 国际化的实现代码示例
Sep 14 Javascript
详解element-ui日期时间选择器的日期格式化问题
Apr 08 Javascript
Vue使用虚拟dom进行渲染view的方法
Dec 26 Javascript
Node.js创建一个Express服务的方法详解
Jan 06 Javascript
Js视频播放器插件Video.js使用方法详解
Feb 04 Javascript
js 闭包深入理解与实例分析
Mar 19 Javascript
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
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
用php过滤危险html代码的函数
2008/07/22 PHP
PHP header()函数常用方法总结
2014/04/11 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
php访问数组最后一个元素的函数end()用法
2015/03/18 PHP
纯php生成随机密码
2015/10/30 PHP
分享PHP守护进程类
2015/12/30 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
通过修改referer下载文件的方法
2008/05/11 Javascript
Extjs3.0 checkboxGroup 动态添加item实现思路
2013/08/14 Javascript
简单谈谈jQuery(function(){})与(function(){})(jQuery)
2014/12/19 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
Json解析的方法小结
2016/06/22 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
微信小程序开发实战教程之手势解锁
2016/11/18 Javascript
微信小程序  wx.request合法域名配置详解
2016/11/23 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
2018/01/09 Javascript
JavaScript实现短暂提示框功能
2018/04/04 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
mock.js模拟前后台交互
2019/07/25 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
10种检测Python程序运行时间、CPU和内存占用的方法
2015/04/01 Python
Python的dict字典结构操作方法学习笔记
2016/05/07 Python
用Python写一个无界面的2048小游戏
2016/05/24 Python
实例详解Matlab 与 Python 的区别
2019/04/26 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
2019/07/25 Python
详解如何修改python中字典的键和值
2020/09/29 Python
Python内置函数及功能简介汇总
2020/10/13 Python
详解python的super()的作用和原理
2020/10/29 Python
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
新闻专业学生的自我评价
2014/02/13 职场文书
结婚保证书
2015/01/16 职场文书
大学生助学金感谢信
2015/01/21 职场文书
辞职离别感言
2015/08/04 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
MySQL的安装与配置详细教程
2021/06/26 MySQL