博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JQuery插件iScroll实现下拉刷新,滚动翻页特效
阅读量:4970 次
发布时间:2019-06-12

本文共 4654 字,大约阅读时间需要 15 分钟。

下拉自动加载进行分页的运用越来越多,比起传统的分页该方法分页用户体验更好,布局也更简单了。目前正在使用和学习中……

JQuery插件:iScroll

页面布局:

下拉刷新...
上拉加载更多...

翻页,是通过ajax请求,把页码传入一般处理程序,在一般处理程序中获得分页后的数据返回json数组对象。

下拉刷新:

/**  * 下拉刷新 (自定义实现此方法)  * myScroll.refresh(); // 数据加载完成后,调用界面更新方法  */  function pullDownAction() {   setTimeout(function () {     var el, li, i;    el = document.getElementById('thelist');    //==========================================    $.ajax({     type: "GET",     url: "LoadMore.ashx",     data: { page: generatedCount },     dataType: "json",     success: function (data) {      var json = data;      $(json).each(function () {       li = document.createElement('li');       // li.innerText = 'Generated row ' + (++generatedCount);       li.innerHTML = '';       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 () {      var el, li, i;    el = document.getElementById('thelist');    //==========================================    $.ajax({     type: "GET",     url: "LoadMore.ashx",     data: { page: generatedCount },     dataType: "json",     success: function (data) {      var json = data;      $(json).each(function () {       li = document.createElement('li');       //  li.innerText = 'Generated row ' + (++generatedCount);       li.innerHTML = ';            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!  }

初始化

/**  * 初始化iScroll控件  */
var myScroll,          pullUpEl, pullUpOffset,          generatedCount = 0;          var imgCont=$('#thelist');          var imgList=$('#thelist li');          var pullUpComponent=$('#pullUp');
function loaded() {   pullDownEl = document.getElementById('pullDown');   pullDownOffset = pullDownEl.offsetHeight;   pullUpEl = document.getElementById('pullUp');   pullUpOffset = pullUpEl.offsetHeight;   myScroll = new iScroll('wrapper', {    scrollbarClass: 'myScrollbar', /* 重要样式 */    useTransition: false,    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 = '下拉刷新...';      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 = '上拉加载更多...';      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?)     }    }   });   setTimeout(function () { document.getElementById('wrapper').style.left = '0'; }, 800);  }  //初始化绑定iScroll控件   document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);  document.addEventListener('DOMContentLoaded', loaded, false);

 

转载于:https://www.cnblogs.com/jeanneze/p/6945770.html

你可能感兴趣的文章
前端利器躬行记(1)——npm
查看>>
前端利器躬行记(2)——Babel
查看>>
前端利器躬行记(6)——Fiddler
查看>>
Forbidden You don't have permission to access / on this server.
查看>>
Windows server 2008 R2中安装MySQL !
查看>>
Intellij Idea新建web项目(转)
查看>>
用JAVA编写浏览器内核之实现javascript的document对象与内置方法
查看>>
linux 命令之top
查看>>
洛谷 [P3033] 牛的障碍
查看>>
centos iptables
查看>>
unity3d 移动与旋转 2
查看>>
寻找二叉查找树中比指定值小的所有节点中最大的那个节点
查看>>
如何设置输入框达到只读效果
查看>>
RT3070 USB WIFI 在连接socket编程过程中问题总结
查看>>
MIS外汇平台荣获“2013年全球最佳STP外汇交易商”
查看>>
LeetCode 题解之Add Digits
查看>>
hdu1502 , Regular Words, dp,高精度加法
查看>>
20120227_CET6
查看>>
SpringBoot在idea中的热部署配置
查看>>
MyEclipse连接SQL Server 2008数据库的操作方法
查看>>