touch上滑加载

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <meta name="viewport" content="initial-scale=1, user-scalable=0, minimal-ui" charset="UTF-8">
    <style type="text/css">
        *{margin: 0;padding:0}
        #slideDown{margin-top: 0;width: 100%;}
        #slideDown1,#slideDown2{width: 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>

</head>
<body>

<div id="content">

    <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>
        </ul>
    </div>
    <div id="slideDown">
        <div id="slideDown1">
            <p>松开刷新</p>
        </div>
        <div id="slideDown2">
            <p>正在刷新 ...</p>
        </div>
    </div>
</div>
<script>
    //第一步:下拉过程
    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){
                    slideDownStep1(-_end);
                }
            }

        }
        function touchEnd(event){
            if(_end >0){
                console.log("左滑或上滑  "+_end);
                slideDownStep2();
                //刷新成功则
                //模拟刷新成功进入第三步
                setTimeout(function(){
                    slideDownStep3();
                },2500);
            }else{
                console.log("右滑或下滑"+_end);
            }
        }
    }

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

  

时间: 2024-12-20 11:05:12

touch上滑加载的相关文章

Android如何定制一个下拉刷新,上滑加载更多的容器

前言 下拉刷新和上滑加载更多,是一种比较常用的列表数据交互方式. android提供了原生的下拉刷新容器 SwipeRefreshLayout,可惜样式不能定制. 于是打算自己实现一个专用的.但是下拉刷新和上滑,非常考验对android布局与父子触摸机制的功底,因此参考gitHub上的一个热门的下拉刷新项目 之所以选择他是因为它一个类就完成了所有View的适配,非常的精简强力. 需求 咱对下拉刷新.上滑加载更多的控件,需求如下: 1:下拉刷新,拖动到一定距离,提示文字变成 放手刷新 2:刷新完成

最新Android ListView 下拉刷新 上滑加载

开发项目过程中基本都会用到listView的下拉刷新和上滑加载更多,之前大家最常用的应该是pull to refresh或它的变种版吧,google官方在最新的android.support.v4包中增加了一个新类SwipeRefreshLayout,地址 这个类的作用就是提供官方的下拉刷新,并且效果相当不错,而上拉加载更多则用我们自定义的listview,也是相当简单. 下拉刷新 简单的介绍下: 首先它是一个viewgroup,但是它只允许有一个子控件,子控件能是任何view,使用的时候,所在

十分钟实现ListView下拉刷新上滑加载更多

说到ListView下拉刷新几乎每个APP都会用到,所以ListView下拉刷新是很重要的,就像ListView优化一样是你必会的东西. ListView实现下拉刷新如果我们开发人员自己编写相对来说比较费事的,当我们使用第三方库之后我们再来开发这个功能就会省事很多.相比与自己实现可以少编写不少代码,Android-PullToRefresh库可以轻松实现ListView的下拉刷新功能. 要使用Android—PullToRefesh库对ListView实现下拉刷新要经过以下几个步骤: 1.下载A

APICloud 上滑加载更多

<!DOCTYPE html><html>        <head>        <meta charset="UTF-8">        <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"     

移动端俩个DIV切换,上滑加载

<!doctype html><html lang="zh-cn"><head> <meta name="viewport" content="initial-scale=1, user-scalable=0, minimal-ui" charset="gbk"> <title>随访计划与随访记录app</title> <style> *{ m

jquery 上滑加载更多

$(document).ready(function() { var totalPage = {$totalPage};//总页数 var page = {$page}; //起始页 var pageSize = {$pageSize} //每页显示个数 $(window).scroll(function() { if(totalPage-page>0){ //滚动条到达底部加载 if ($(document).scrollTop() >= $(document).height() - $(w

使用jquery.more.js上滑加载更多

html: <div id="more"> <div class="single_item"> <div class="date"></div> <div class="author"></div> <div class="title"></div> </div> <a href="j

Android 下拉刷新,上滑加载更多

底部上拉效果 public class ListViewFooter extends LinearLayout { public final static int STATE_NORMAL = 0; public final static int STATE_READY = 1; public final static int STATE_LOADING = 2; private Context mContext; private View mContentView; private View

WebApp上滑加载数据...

$(window).bind("scroll", function () { if ($(document).scrollTop() + $(window).height() > $(document).height() - 5) { //做些什么~~~ } }); 记录一下..备忘..