jQuery模拟原生态App上拉刷新下拉加载更多页面及
网络编程 2021-07-04 21:48www.168986.cn编程入门
很多App中,新闻或者展示类都存在下拉刷新和上拉加载的效果,如何实现上拉刷新下拉加载更多页面的呢?狼蚁网站SEO优化长沙网络推广通过狼蚁网站SEO优化内容给大家介绍jQuery模拟原生态App上拉刷新下拉加载更多页面及原理,需要的朋友可以参考下
很多App中,新闻或者展示类都存在下拉刷新和上拉加载的效果,网上提供了实现这种效果的第三方类(详情请见MJRefresh和EGOTableViewPullRefresh),用起来很方便,闲暇之余,我们可以思考下,这种效果实现的原理是什么,我以前说过,只要是动画都是骗人的,只要不是硬件问题大部分效果都能在系统UI的基础上做出来.
狼蚁网站SEO优化通过jQuery手机端上拉下拉刷新页面代码,很像QQ空间客户端或者微信下拉刷新页面特效代码。
请看狼蚁网站SEO优化效果图
html代码
<div id="wrapper"> <ul> <li>row </li> <li>row </li> <li>row </li> <li>row </li> <li>row </li> <li>row </li> <li>row </li> <li>row </li> <li>row </li> <li>row </li> </ul> </div> <script> for (var i = ; i < document.querySelectorAll("#wrapper ul li").length; i++) { document.querySelectorAll("#wrapper ul li")[i].colorfulBg(); } refresher.init({ id: "wrapper",//<------------------------------------------------------------------------------------┐ pullDownAction: Refresh, pullUpAction: Load }); var generatedCount = ; function Refresh() { setTimeout(function () { // <-- Simulate work congestion, remove setTimeout from production! var el, li, i; el = document.querySelector("#wrapper ul"); el.innerHTML = ''; for (i = ; i < ; i++) { li = document.createElement('li'); li.appendChild(document.createTextNode('async row ' + (++generatedCount))); el.insertBefore(li, el.childNodes[]); } wrapper.refresh();/remember to refresh after action pleted! ---yourId.refresh(); ----| / for (var i = ; i < document.querySelectorAll("#wrapper ul li").length; i++) { document.querySelectorAll("#wrapper ul li")[i].colorfulBg(); } }, ); } function Load() { setTimeout(function () {// <-- Simulate work congestion, remove setTimeout from production! var el, li, i; el = document.querySelector("#wrapper ul"); for (i = ; i < ; i++) { li = document.createElement('li'); li.appendChild(document.createTextNode('async row ' + (++generatedCount))); el.appendChild(li, el.childNodes[]); } wrapper.refresh();/remember to refresh after action pleted!!! ---id.refresh(); --- / for (var i = ; i < document.querySelectorAll("#wrapper ul li").length; i++) { document.querySelectorAll("#wrapper ul li")[i].colorfulBg(); } }, ); } </script>
下拉刷新和上拉加载更多原理详解,具体介绍通过代码分析。
代码如下
// 下拉刷新的原理 - (void)scrollViewWillBeginDecelerating:(UIScrollView )scrollView { if (scrollView.contentOffset.y < - 100) { [UIView animateWithDuration:1.0 animations:^{ // frame发生偏移,距离顶部150的距离(可自行设定) self.tableView.contentInset = UIEdgeInsetsMake(150.0f, 0.0f, 0.0f, 0.0f); } pletion:^(BOOL finished) { / 发起网络请求,请求刷新数据 / }]; } } // 上拉加载的原理 - (void)scrollViewDidEndDragging:(UIScrollView )scrollView willDecelerate:(BOOL)decelerate { NSLog(@"%f",scrollView.contentOffset.y); NSLog(@"%f",scrollView.frame.size.height); NSLog(@"%f",scrollView.contentSize.height); / 关键--> scrollView一开始并不存在偏移量,会设定contentSize的大小,所以contentSize.height永远都会比contentOffset.y高一个手机屏幕的 高度;上拉加载的效果就是每次滑动到底部时,再往上拉的时候请求更多,那个时候产生的偏移量,就能让contentOffset.y + 手机屏幕尺寸高大于这 个滚动视图的contentSize.height / if (scrollView.contentOffset.y + scrollView.frame.size.height >= scrollView.contentSize.height) { NSLog(@"%d %s",__LINE__,__FUNCTION__); [UIView mitAnimations]; [UIView animateWithDuration:1.0 animations:^{ // frame发生的偏移量,距离底部往上提高60(可自行设定) self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 60, 0); } pletion:^(BOOL finished) { / 发起网络请求,请求加载更多数据 然后在数据请求回来的时候,将contentInset改为(0,0,0,0) / }]; } }
以上内容就是本文针对jQuery模拟原生态App上拉刷新下拉加载更多页面及原理详解,希望对大家有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程