基于iScroll实现下拉刷新和上滑加载效果
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了基于iScroll实现下拉刷新和上滑加载效果,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4446字,纯文字阅读大概需要7分钟。
内容图文
本文实例为大家分享了iScroll下拉刷新上滑加载展示的具体代码,供大家参考,具体内容如下
html代码:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;" /> <title>iScroll下拉刷新上滑加载</title> <link rel="stylesheet" href="style/main.css"/> </head> <body> <div class="header">header</div> <div id="wrapper"> <div id="scroller"> <div id="pullDown"> <span class="pullDownLabel">下拉刷新</span> </div> <ul id="thelist"> <!--<li>原始数据</li>--> </ul> <div id="pullUp"> <span class="pullUpLabel">上拉加载更多</span> </div> </div> </div> <div class="footer">footer</div> <script type="text/javascript" src="script/iscroll.js"></script> <script type="text/javascript" src="script/main.js"></script> </body> </html>
css代码:
body,ul,li {padding:0;margin:0;border:0} body {font-size:12px;font-family:microsoft yahei} .header {position:absolute;top:0; left:0;width:100%;height:45px;line-height:45px;font-size:16px;text-align:center;background:#e6e6e6} .footer {position:absolute;bottom:0; left:0;width:100%;height:48px;line-height:48px;font-size:16px;text-align:center;background:#e6e6e6} #wrapper {position:absolute;top:45px; bottom:48px;left:0;width:100%} #scroller li {padding:0 10px;height:60px;line-height:60px;background:#ecf6ff;margin-top:10px} #pullDown, #pullUp {padding:0 10px;height:30px;line-height:30px;color:#888;text-align:center}
js代码:
var myScroll,pullDownEl, pullDownOffset,pullUpEl, pullUpOffset,generatedCount = 0; 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 = '下拉刷新'; } else if (pullUpEl.className.match('loading')) { pullUpEl.className = ''; pullUpEl.querySelector('.pullUpLabel').innerHTML = '上拉加载更多'; } }, onScrollMove: function () { if (this.y > 5 && !pullDownEl.className.match('flip')) { pullDownEl.className = 'flip'; pullDownEl.querySelector('.pullDownLabel').innerHTML = '释放刷新'; 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 = '释放刷新'; 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 = '加载中'; pullDownAction(); // Execute custom function (ajax call?) } else if (pullUpEl.className.match('flip')) { pullUpEl.className = 'loading'; pullUpEl.querySelector('.pullUpLabel').innerHTML = '加载中'; pullUpAction(); // Execute custom function (ajax call?) } } }); loadAction(); } document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);//阻止冒泡 document.addEventListener('DOMContentLoaded', function () { setTimeout(loaded, 0); }, false); //初始状态,加载数据 function loadAction(){ var el, li; el = document.getElementById('thelist'); for (i=0; i<10; i++) { li = document.createElement('li'); li.innerText = '初始数据--' + (++generatedCount); el.appendChild(li, el.childNodes[0]); } myScroll.refresh(); } //下拉刷新当前数据 function pullDownAction () { setTimeout(function () { //这里执行刷新操作 myScroll.refresh(); }, 400); } //上拉加载更多数据 function pullUpAction () { setTimeout(function () { var el, li; el = document.getElementById('thelist'); for (i=0; i<10; i++) { li = document.createElement('li'); li.innerText = '上拉加载--' + (++generatedCount); el.appendChild(li, el.childNodes[0]); } myScroll.refresh(); }, 400); }
示例:
demo地址:http://test.ixiewei.com/iscroll-4-demo
下载地址:iScroll下拉刷新上滑加载
截图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
内容总结
以上是互联网集市为您收集整理的基于iScroll实现下拉刷新和上滑加载效果全部内容,希望文章能够帮你解决基于iScroll实现下拉刷新和上滑加载效果所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。