一个拉动刷新的例子

演示 :http://cubiq.org/dropbox/iscroll4/examples/pull-to-refresh/

源码如下

<script type="text/javascript" src="../../src/iscroll.js"></script><script type="text/javascript">var myScroll,pullDownEl, pullDownOffset,pullUpEl, pullUpOffset,generatedCount = 0;function pullDownAction () {setTimeout(function () {  // <-- Simulate network congestion, remove setTimeout from production!var el, li, i;el = document.getElementById('thelist');for (i=0; i<3; i++) {li = document.createElement('li');li.innerText = 'Generated row ' + (++generatedCount);el.insertBefore(li, el.childNodes[0]);}myScroll.refresh();     // Remember to refresh when contents are loaded (ie: on ajax completion)}, 1000);   // <-- Simulate network congestion, remove setTimeout from production!
}function pullUpAction () {setTimeout(function () { // <-- Simulate network congestion, remove setTimeout from production!var el, li, i;el = document.getElementById('thelist');for (i=0; i<3; i++) {li = document.createElement('li');li.innerText = 'Generated row ' + (++generatedCount);el.appendChild(li, el.childNodes[0]);}myScroll.refresh();      // Remember to refresh when contents are loaded (ie: on ajax completion)}, 1000);   // <-- Simulate network congestion, remove setTimeout from production!
}function loaded() {pullDownEl = document.getElementById('pullDown');pullDownOffset = pullDownEl.offsetHeight;pullUpEl = document.getElementById('pullUp');  pullUpOffset = pullUpEl.offsetHeight;myScroll = new iScroll('wrapper', {useTransition: true,topOffset: pullDownOffset,onRefresh: function () {if (pullDownEl.className.match('loading')) {pullDownEl.className = '';pullDownEl.querySelector('.pullDownLabel').innerHTML = 'Pull down to refresh...';} else if (pullUpEl.className.match('loading')) {pullUpEl.className = '';pullUpEl.querySelector('.pullUpLabel').innerHTML = 'Pull up to load more...';}},onScrollMove: function () {if (this.y > 5 && !pullDownEl.className.match('flip')) {pullDownEl.className = 'flip';pullDownEl.querySelector('.pullDownLabel').innerHTML = 'Release to refresh...';this.minScrollY = 0;} else if (this.y < 5 && pullDownEl.className.match('flip')) {pullDownEl.className = '';pullDownEl.querySelector('.pullDownLabel').innerHTML = 'Pull down to refresh...';this.minScrollY = -pullDownOffset;} else if (this.y < (this.maxScrollY - 5) && !pullUpEl.className.match('flip')) {pullUpEl.className = 'flip';pullUpEl.querySelector('.pullUpLabel').innerHTML = 'Release to refresh...';this.maxScrollY = this.maxScrollY;} else if (this.y > (this.maxScrollY + 5) && pullUpEl.className.match('flip')) {pullUpEl.className = '';pullUpEl.querySelector('.pullUpLabel').innerHTML = 'Pull up to load more...';this.maxScrollY = pullUpOffset;}},onScrollEnd: function () {if (pullDownEl.className.match('flip')) {pullDownEl.className = 'loading';pullDownEl.querySelector('.pullDownLabel').innerHTML = 'Loading...';               pullDownAction();   // Execute custom function (ajax call?)} else if (pullUpEl.className.match('flip')) {pullUpEl.className = 'loading';pullUpEl.querySelector('.pullUpLabel').innerHTML = 'Loading...';              pullUpAction(); // Execute custom function (ajax call?)}}});setTimeout(function () { document.getElementById('wrapper').style.left = '0'; }, 800);
}document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);document.addEventListener('DOMContentLoaded', function () { setTimeout(loaded, 200); }, false);
</script><style type="text/css" media="all">
body,ul,li {padding:0;margin:0;border:0;
}body {font-size:12px;-webkit-user-select:none;-webkit-text-size-adjust:none;font-family:helvetica;
}#header {position:absolute; z-index:2;top:0; left:0;width:100%;height:45px;line-height:45px;background-color:#d51875;background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #fe96c9), color-stop(0.05, #d51875), color-stop(1, #7b0a2e));background-image:-moz-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);background-image:-o-linear-gradient(top, #fe96c9, #d51875 5%, #7b0a2e);padding:0;color:#eee;font-size:20px;text-align:center;
}#header a {color:#f3f3f3;text-decoration:none;font-weight:bold;text-shadow:0 -1px 0 rgba(0,0,0,0.5);
}#footer {position:absolute; z-index:2;bottom:0; left:0;width:100%;height:48px;background-color:#222;background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(0, #999), color-stop(0.02, #666), color-stop(1, #222));background-image:-moz-linear-gradient(top, #999, #666 2%, #222);background-image:-o-linear-gradient(top, #999, #666 2%, #222);padding:0;border-top:1px solid #444;
}#wrapper {position:absolute; z-index:1;top:45px; bottom:48px; left:-9999px;width:100%;background:#aaa;overflow:auto;
}#scroller {position:absolute; z-index:1;
/*  -webkit-touch-callout:none;*/-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%;padding:0;
}#scroller ul {list-style:none;padding:0;margin:0;width:100%;text-align:left;
}#scroller li {padding:0 10px;height:40px;line-height:40px;border-bottom:1px solid #ccc;border-top:1px solid #fff;background-color:#fafafa;font-size:14px;
}#myFrame {position:absolute;top:0; left:0;
}/**** Pull down styles**/
#pullDown, #pullUp {background:#fff;height:40px;line-height:40px;padding:5px 10px;border-bottom:1px solid #ccc;font-weight:bold;font-size:14px;color:#888;
}
#pullDown .pullDownIcon, #pullUp .pullUpIcon  {display:block; float:left;width:40px; height:40px;background:url(pull-icon@2x.png) 0 0 no-repeat;-webkit-background-size:40px 80px; background-size:40px 80px;-webkit-transition-property:-webkit-transform;-webkit-transition-duration:250ms;
}
#pullDown .pullDownIcon {-webkit-transform:rotate(0deg) translateZ(0);
}
#pullUp .pullUpIcon  {-webkit-transform:rotate(-180deg) translateZ(0);
}#pullDown.flip .pullDownIcon {-webkit-transform:rotate(-180deg) translateZ(0);
}#pullUp.flip .pullUpIcon {-webkit-transform:rotate(0deg) translateZ(0);
}#pullDown.loading .pullDownIcon, #pullUp.loading .pullUpIcon {background-position:0 100%;-webkit-transform:rotate(0deg) translateZ(0);-webkit-transition-duration:0ms;-webkit-animation-name:loading;-webkit-animation-duration:2s;-webkit-animation-iteration-count:infinite;-webkit-animation-timing-function:linear;
}@-webkit-keyframes loading {from { -webkit-transform:rotate(0deg) translateZ(0); }to { -webkit-transform:rotate(360deg) translateZ(0); }
}</style>
</head>
<body><div id="header"><a href="http://cubiq.org/iscroll">iScroll</a></div>
<div id="wrapper"><div id="scroller"><div id="pullDown"><span class="pullDownIcon"></span><span class="pullDownLabel">Pull down to refresh...</span></div><ul id="thelist"><li>Pretty row 1</li><li>Pretty row 2</li><li>Pretty row 3</li><li>Pretty row 4</li><li>Pretty row 5</li><li>Pretty row 6</li><li>Pretty row 7</li><li>Pretty row 8</li><li>Pretty row 9</li><li>Pretty row 10</li><li>Pretty row 11</li><li>Pretty row 12</li><li>Pretty row 13</li><li>Pretty row 14</li><li>Pretty row 15</li><li>Pretty row 16</li><li>Pretty row 17</li><li>Pretty row 18</li><li>Pretty row 19</li><li>Pretty row 20</li><li>Pretty row 21</li><li>Pretty row 22</li><li>Pretty row 23</li><li>Pretty row 24</li><li>Pretty row 25</li><li>Pretty row 26</li><li>Pretty row 27</li><li>Pretty row 28</li><li>Pretty row 29</li><li>Pretty row 30</li><li>Pretty row 31</li><li>Pretty row 32</li><li>Pretty row 33</li><li>Pretty row 34</li><li>Pretty row 35</li><li>Pretty row 36</li><li>Pretty row 37</li><li>Pretty row 38</li><li>Pretty row 39</li><li>Pretty row 40</li></ul><div id="pullUp"><span class="pullUpIcon"></span><span class="pullUpLabel">Pull up to refresh...</span></div></div>
</div>
<div id="footer"></div></body>
</html>

  参考 :http://www.cnblogs.com/duanhuajian/archive/2013/04/08/3008323.html

转载于:https://www.cnblogs.com/keluo/p/5157472.html

iscroll 滚动刷新相关推荐

  1. vue 实现 web端滚动刷新 自定义指令

    vue 实现 web端滚动刷新 想实现web端的滚动刷新,我们需要判断滚动已经到达最低部,利用addEventListener监听滚动高度,触发相应的回调函数,激发加载更多数据,那么我们该怎样计算滚动 ...

  2. vue 实现 web端滚动刷新 排序 筛选 响应式布局 (源码)

    vue 实现 web端滚动刷新 排序 筛选 响应式布局 先展示效果图 源码: <template><div> <!-- 头部--><div class=&qu ...

  3. jq-weui滚动刷新,日历,和地址选择器

    最近工作方面的原因,接触到了微信公众号.然后网上找资料发现了jq-weui这个框架,觉得特别不错,分享一下 下载jq-weui点击这里下载jquery-weui,这里一定要注意下载的版本.因为有些功能 ...

  4. php js鼠标滚动刷新,利用php和js实现页面数据刷新

    利用"XXXX.htm"和"XXX.php"两个文件来实现数据的刷新 XXXX.htm // Refresh code r_s = 0; timenow = 0 ...

  5. 使用vue-mugen-scroll组件实现pc端滚动刷新

    由于工作的原因,现在需要实现一个滚动加载(PC端)的效果,之前使用的是vue+element,但是element没有类似的组件,所以去github上找了一个名叫vue-mugen-scroll,使用起 ...

  6. iOS动画开发----打分 数字滚动刷新动画

    最近项目中用到了打分动画. 在网上找到了很多Demo,最后找到了JTNumberScrollAnimatedView这个类实现的动画效果,和项目中用到的非常贴切,帮我省了不少时间,很感谢JTNumbe ...

  7. ajax实现滚动刷新,jquery如何实现滚动自动加载

    前提:引入jquery文件. html 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 啊 css *{ margin: 0; paddin ...

  8. ajax 下拉刷新 上拉加载更多,局部刷新iscroll控件的具体使用(下拉刷新,上拉加载更多)...

    标签下,这是调用iscroll的必要条件,否则会出现不能刷新或者不能滑动页面的情况.此外还有商量刷新及下拉刷新的标签,在iscroll中有这两个标签的样式,若不想用默认的样式,也可通过覆盖的方式添加其 ...

  9. iscroll 4.0 滚动(水平和垂直)

    1.概述 iscroll 专注于页面滚动js.Iscroll滚动做的挺好,特别是针对手机网页(android.iphone)正好弥补手动滑屏的遗缺,而今研究一番,把代码贴出来,供大家参考. 2.isc ...

最新文章

  1. 值得关注的未来技术,增强现实
  2. 关于javascript 一些有用的数值转换常量和方法
  3. java遍历集合选择题_Java集合知识测试B
  4. python中的self描述符__set__和__get__简单总结
  5. 比较正宗的验证邮箱的正则表达式js代码详解
  6. feign 能干什么:
  7. CH 5102 Mobile Service(线性DP)
  8. Reptile:requests + Xpath 爬取段子网的段子
  9. Elegant Construction HDU-5813 构造
  10. JVM内存分析及导致内存溢出的不健壮代码及解决办法
  11. Echarts实现双y轴(不同刻度)
  12. java项目包名理解
  13. 黑客攻击手段揭秘(转)
  14. 介绍一门很有前景的语言Nim(1)
  15. 吃鸡神器!新款苹果 iPad,免费送一台!
  16. Matlab:数值积分与符号计算
  17. 《JAVA设计模式系列》责任链模式
  18. pcie gen3 bios设置_u盘pe设置联想台式机lenovo BIOS从u盘启动教程
  19. 雪都阿勒泰滑雪爱好者首选地
  20. 分享一个忘忧神途辅助脚本工具

热门文章

  1. C#创建、安装一个Windows服务
  2. html 整个页面变灰
  3. NetBeans 时事通讯(刊号 # 117 - Sep 16, 2010)
  4. java cms cpu占用率_cpu使用率过高和jvm old占用过高排查过程
  5. 5.3.3 TCP可靠传输
  6. Modelsim+Debussy联合使用
  7. 运算放大器的好坏判别方法
  8. 又一理论横空出现或将颠覆世界
  9. [译] Lenses:可组合函数式编程的 Getter 和 Setter(第十九部分)
  10. zk Acl权限:只有一个账号有crdwa权限,匿名用户只有r权限