zoukankan      html  css  js  c++  java
  • JS实现下拉刷新和上拉加载

    <!DOCTYPE html>
    <html>
    <head>
    <title></title>
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui">
    <style type="text/css">
    #slideDown{margin-top: 0; 100%;}
    #slideDown1,#slideDown2{ 100%;height: 70px;;background: #e9f4f7;display: none;}
    #slideDown1{height: 20px;}
    #slideDown1>p,#slideDown2>p{margin: 20px auto;text-align:center;font-size: 14px;color: #37bbf5;}
    </style>
    <script src="http://cdn.bootcss.com/jquery/2.1.4/jquery.js" type="text/javascript"></script>
    </head>
    <body>
    <div id="content">
    <div id="slideDown">
    <div id="slideDown1">
    <p>松开刷新</p>
    </div>
    <div id="slideDown2">
    <p>正在刷新 ...</p>
    </div>
    </div>
    <div class="myContent">
    <ul>
    <li>item1 -- item1 -- item1</li>
    <li>item2 -- item2 -- item2</li>
    <li>item3 -- item3 -- item3</li>
    <li>item4 -- item4 -- item4</li>
    <li>item5 -- item5 -- item5</li>
    <li>item6 -- item6 -- item6</li>
    <li>item7 -- item7 -- item7</li>
    <li>item1 -- item1 -- item1</li>
    <li>item2 -- item2 -- item2</li>
    <li>item3 -- item3 -- item3</li>
    <li>item4 -- item4 -- item4</li>
    <li>item5 -- item5 -- item5</li>
    <li>item6 -- item6 -- item6</li>
    <li>item7 -- item7 -- item7</li>
    <li>item1 -- item1 -- item1</li>
    <li>item2 -- item2 -- item2</li>
    <li>item3 -- item3 -- item3</li>
    <li>item4 -- item4 -- item4</li>
    <li>item5 -- item5 -- item5</li>
    <li>item6 -- item6 -- item6</li>
    <li>item7 -- item7 -- item7</li>
    <li>item1 -- item1 -- item1</li>
    <li>item2 -- item2 -- item2</li>
    <li>item3 -- item3 -- item3</li>
    <li>item4 -- item4 -- item4</li>
    <li>item5 -- item5 -- item5</li>
    <li>item6 -- item6 -- item6</li>
    <li>item7 -- item7 -- item7</li>
    <li>item1 -- item1 -- item1</li>
    <li>item2 -- item2 -- item2</li>
    <li>item3 -- item3 -- item3</li>
    <li>item4 -- item4 -- item4</li>
    <li>item5 -- item5 -- item5</li>
    <li>item6 -- item6 -- item6</li>
    <li>item7 -- item7 -- item7</li>
    <li>item1 -- item1 -- item1</li>
    <li>item2 -- item2 -- item2</li>
    <li>item3 -- item3 -- item3</li>
    <li>item4 -- item4 -- item4</li>
    <li>item5 -- item5 -- item5</li>
    <li>item6 -- item6 -- item6</li>
    <li>item7 -- item7 -- item7</li>
    <li>item1 -- item1 -- item1</li>
    <li>item2 -- item2 -- item2</li>
    <li>item3 -- item3 -- item3</li>
    <li>item4 -- item4 -- item4</li>
    <li>item5 -- item5 -- item5</li>
    <li>item6 -- item6 -- item6</li>
    <li>item7 -- item7 -- item7</li>
    <li>item1 -- item1 -- item1</li>
    <li>item2 -- item2 -- item2</li>
    <li>item3 -- item3 -- item3</li>
    <li>item4 -- item4 -- item4</li>
    <li>item5 -- item5 -- item5</li>
    <li>item6 -- item6 -- item6</li>
    <li>item7 -- item7 -- item7</li>
    <li>item1 -- item1 -- item1</li>
    <li>item2 -- item2 -- item2</li>
    <li>item3 -- item3 -- item3</li>
    <li>item4 -- item4 -- item4</li>
    <li>item5 -- item5 -- item5</li>
    <li>item6 -- item6 -- item6</li>
    <li>item7 -- item7 -- item7</li>
    </ul>
    </div>
    </div>

    <script type="text/javascript">

    //第一步:下拉过程
    function slideDownStep1(dist) { // dist 下滑的距离,用以拉长背景模拟拉伸效果
    var slideDown1 = document.getElementById("slideDown1"),
    slideDown2 = document.getElementById("slideDown2");
    slideDown2.style.display = "none";
    slideDown1.style.display = "block";
    slideDown1.style.height = (parseInt("20px") - dist) + "px";
    }
    //第二步:下拉,然后松开,
    function slideDownStep2() {
    var slideDown1 = document.getElementById("slideDown1"),
    slideDown2 = document.getElementById("slideDown2");
    slideDown1.style.display = "none";
    slideDown1.style.height = "20px";
    slideDown2.style.display = "block";
    //刷新数据
    //location.reload();
    }
    //第三步:刷新完成,回归之前状态
    function slideDownStep3() {
    var slideDown1 = document.getElementById("slideDown1"),
    slideDown2 = document.getElementById("slideDown2");
    slideDown1.style.display = "none";
    slideDown2.style.display = "none";
    }

    //下滑刷新调用
    k_touch("content", "y");
    //contentId表示对其进行事件绑定,way==>x表示水平方向的操作,y表示竖直方向的操作
    function k_touch(contentId, way) {
    var _start = 0,
    _end = 0,
    _content = document.getElementById(contentId);
    _content.addEventListener("touchstart", touchStart, false);
    _content.addEventListener("touchmove", touchMove, false);
    _content.addEventListener("touchend", touchEnd, false);
    function touchStart(event) {
    //var touch = event.touches[0]; //这种获取也可以,但已不推荐使用

    var touch = event.targetTouches[0];
    if (way == "x") {
    _start = touch.pageX;
    } else {
    _start = touch.pageY;
    }
    }
    function touchMove(event) {
    var touch = event.targetTouches[0];
    if (way == "x") {
    _end = (_start - touch.pageX);
    } else {
    _end = (_start - touch.pageY);
    //下滑才执行操作
    if (_end < 0 & $(document).scrollTop() <= 0 & _end < -50) {
    slideDownStep1(_end);
    }
    }

    }
    function touchEnd(event) {
    if (_end > 0) {
    console.log("左滑或上滑 " + _end);
    if ($(document).scrollTop() >= $(document).height() - $(window).height() & _end > 50) {//到达底部,并且上拉超过50px才加载新数据
    alert("上拉加载");
    }
    } else {
    console.log("右滑或下滑" + _end);
    if ($(document).scrollTop() <= 0&_end<-50) {//到达顶部,并且下拉超过50px,才刷新数据
    alert("下拉刷新");
    slideDownStep2();
    //刷新成功则
    //模拟刷新成功进入第三步
    setTimeout(function () {
    slideDownStep3();
    }, 2500);
    }

    }
    }
    }
    </script>
    </body>
    </html>

  • 相关阅读:
    配置对即时负载的优化
    通过重组索引提高性能
    使用索引视图提高性能
    sqlcmd
    (转)使用SQLCMD在SQLServer执行多个脚本
    在SQLServer处理中的一些问题及解决方法 NEWSEQUENTIALID()
    java反射机制与动态代理
    天天用的开发环境,你真的了解吗?
    通过IP获取对应所在地的地址
    unity3d KeyCode各键值说明
  • 原文地址:https://www.cnblogs.com/xiaodongaini/p/4814700.html
Copyright © 2011-2022 走看看