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             }
  • 相关阅读:
    寄存器英文全称
    汇编指令介绍
    汇编指令的基本知识
    第一篇
    Windows下让Git记住用户名密码(https)
    javascript 汉字拼音排序
    KO.js学习笔记(一)
    学javascript突发奇想,只用浏览器就能转换进制
    谨此纪念我的技术成长之路
    委托与事件
  • 原文地址:https://www.cnblogs.com/web-wjg/p/7423117.html
Copyright © 2011-2022 走看看