zoukankan      html  css  js  c++  java
  • 移动端下拉刷新,向后台请求数据

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

    一,重新刷新整个页面.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             }
  • 相关阅读:
    案例的法律分析
    被投资人“送”入看守所 z
    easyUI样式之easyui-switchbutton
    阿里大于发送短信(java)
    java Random.nextInt()方法
    DateFormatUtil格式化时间
    MessageFormat.format 字符串的模板替换
    JsonArray对象
    jsonObject关于xml,json,bean之间的转换关系
    Java 使用IE浏览器下载文件,文件名乱码问题
  • 原文地址:https://www.cnblogs.com/web-wjg/p/7423117.html
Copyright © 2011-2022 走看看