首先说明,下拉刷新有两种情况:

一,重新刷新整个页面.window.location.reload(),这种方式也可以做到,前提是进入页面也是直接从后台取数据,这种方法较简单;

二,下拉后不刷新页面,只是向后台发送ajax请求,这种情况就复杂点,会存在服务端返回数据重复的情况,这个时候一般需要服务端返回一个参数,供客户端判断;

下面是自己js手写下拉刷新代码:(一些博客、论坛有别人写好的,可修改使用)

css

.loading {display: inline-block;height: 15px;width: 15px;border-radius: 100%;margin: 6px;border: 2px solid #666;border-bottom-color: transparent;vertical-align: middle;-webkit-animation: rotate 0.75s linear infinite;animation: rotate 0.75s linear infinite;
}@-webkit-keyframes rotate {0% {-webkit-transform: rotate(0deg);}50% {-webkit-transform: rotate(180deg);}100% {-webkit-transform: rotate(360deg);}}@keyframes rotate {0% {transform: rotate(0deg);}50% {transform: rotate(180deg);}100% {transform: rotate(360deg);}
}    

js

 1 function update(element) {
 2                 var start = 0,
 3                     end = 0,
 4                     ele = $(element)[0];//DOM对象转化为jQuery对象
 5                 ele.addEventListener("touchstart", touchstart, false);
 6                 ele.addEventListener("touchmove", touchmove, false);
 7                 ele.addEventListener("touchend", touchend, false);
 8
 9                 $('<div class="update">↓下拉刷新</div>').prependTo($("body"));
10
11                 function touchstart(ev) {
12                     var touch = ev.targetTouches[0];
13                     start = touch.pageY;
14                 }
15
16                 function touchmove(ev) {
17                     var touch = ev.targetTouches[0];
18                     end = start - touch.pageY;
19                     $(this).css("top", (-end + "px"))
20                     if(end < 0 && $(document).scrollTop() == 0) {
21                         $(".update").show();
22                         end > -60 ? $(".update").html('↓下拉刷新') : $(".update").html('↑释放更新 ');
23                     }
24                 }
25
26                 function touchend(ev) {
27                     if(parseInt(end) < 0 && $(document).scrollTop() == 0) {
28                         $(".update").html('<span class="loading"></span>加载中...');
29                         //GetList(obj);向后台请求数据
30                         window.location.reload();//刷新整个页面
31                         setTimeout(function() {
32                             $(".update").remove();
33                             ele.css('top',0);
34                         }, 2500);
35                     }
36                 }
37             }

转载于:https://www.cnblogs.com/web-wjg/p/7423117.html

移动端下拉刷新,向后台请求数据相关推荐

  1. Vant-ui 移动端下拉刷新

    这个是基于上一篇文章,上拉加载更多,继续的下拉刷新 这里面利用到了 vant组件库里的 PullRefresh 下拉刷新时会触发 refresh 事件,在事件的回调函数中可以进行同步或异步操作,操作完 ...

  2. html下拉刷新原理,科技常识:移动端下拉刷新头实现原理及代码实现

    科技常识:移动端下拉刷新头实现原理及代码实现 2021-05-24 21:23:20 • 互联网 今天小编跟大家讲解下有关移动端下拉刷新头实现原理及代码实现 ,相信小伙伴们对这个话题应该有所关注吧,小 ...

  3. [ vant ] vue移动端下拉刷新组件

    学习关键语句: vant list组件和下拉刷新 vant 下拉刷新和局部滚动冲突 写在前面 每一次 ! 我是说每一次我在使用 vant 组件库里面 list组件和下拉刷新连在一起用的时候 都会出现下 ...

  4. 移动端下拉刷新infinitescroll

    使用的是infinitescroll 移动端手机下拉刷新数据 第一步:在serviceList.html导入 <script src="/js/jquery.infinitescrol ...

  5. 移动端下拉刷新原理和实例

    移动端的下拉刷新是一个很常见的功能,也有许多开源库实现了这个功能,不过为了学习,还是先自己写一个例子学习一下.其中用到了一些touch事件和一些DOM属性CSS3属性.直接上代码,代码里面有注释. & ...

  6. 移动端下拉刷新,兼容ios,Android及微信浏览器

    先看一下效果图 下拉效果的样子参考的新浪微博,滚动加载是ydui的滚动加载组件 因为滚动加载使用的ydui的组件,我这里便不再累述 在线体验点这里 首先分析下拉刷新是怎么实现的 1.页面滚动到顶部时, ...

  7. 移动端下拉刷新与页面内滑动冲突问题 iscroll 固定行表头 苹果下拉反弹

    此方法在安卓6的自带下拉刷新的APP内无效. 做移动app项目时,用的是app内嵌webview的方法,遇到问题. 在安卓6中,app原生自带下拉刷新,与界面内的下滑冲突. 开始考虑通过在touchm ...

  8. vue移动端下拉刷新、上拉加载

    由于自身的项目比较简单,只有几个H5页面,用来嵌入app中,所有没有引入移动端的UI框架,但是介于能让用户在浏览H5页面时有下拉刷新和上拉加载,有更好的用户体验,自己写组件实现. 1.下拉刷新Drop ...

  9. vue移动端下拉刷新组件、上拉加载组件

    1.下拉刷新DropDownRefresh.vue <template> <div @touchstart="touchStart($event)" @touch ...

  10. uinapp下拉刷新,更新列表数据

    <template><view class="index_container"><view class="index_search_con& ...

最新文章

  1. 红帽计划收购API管理领导者3scale
  2. 5G RRC——为NAS层提供连接管理,消息传递等服务; 对接入网的底层协议实体提供参数配置的功能; 负责UE移动性管理相关的测量、控制等功能...
  3. dvt高危患者的护理措施_dvt的预防及护理
  4. mysql 8.0.x版本压缩包安装方式
  5. 【seata系列】centos服务器带你踩坑搭建seata以及解决MySQL8.0无法启动问题
  6. python源码中的学习笔记_第3章_range函数与循环结构
  7. java final一点
  8. python 详解re模块
  9. 教你一招最屌的阅读开源项目的姿势
  10. 海康SDK-javademo实现报错问题解决
  11. 常用的浏览器及其内核
  12. 微信小程序实训day03
  13. 2020年哈尔滨工业大学C语言程序设计精髓 第四周练兵编程题
  14. 你不可不知的Java引用类型之——SoftReference源码详解
  15. 数据库异常:无效的授权说明 [ 0x80040e4d ]
  16. 无线软AP简介【转载】
  17. html5中delay的作用,animation-delay属性怎么用
  18. 哈萨克斯坦--阿斯塔纳之行
  19. 12家新的银行加入区块链联盟R3
  20. 红外光谱技术在气体检测分析中的应用

热门文章

  1. Report Service中报 RSClientController 未定义
  2. beanstalkd最佳实践-编程开发
  3. 实践两个servlet小项目
  4. android禁止下拉状态栏
  5. 每一个都能笑抽的39个奇葩代码注释
  6. 今日头条首次公开算法原理(附全文详解)
  7. 深度好文:迄今见过最好的职业规划的文章
  8. 全网AI和机器学习资源大合集(研究机构、视频、博客、书籍...)
  9. 10 分钟让你明白 MySQL 是如何利用索引的
  10. 新浪新规:9点关灯,公司加班要交空调费:1600元/小时