兩個菜單頁面組成的手機頁面滑動加載更多

兩個菜單頁面組成的手機頁面滑動加載更多,觸摸上滑可以加載更多記錄,最多30條。最多加載數和每次加載數都可在jquery中配置。

HTML

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width,height=device-height, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
        <meta name="apple-mobile-web-app-capable" content="yes">
        <title></title>
        <script type="text/javascript" src="../js/jquery-1.12.1.js"></script>

    </head>

    <body>
        <nav style="width:100%">
            <span class="menuClass nav-active" id="spanMenuOne" onclick="switchMenu(this.id)">菜單一</span>
            <span class="menuClass" id="spanMenuTwo" onclick="switchMenu(this.id)">菜單二</span>
        </nav>
        <div class="main" style="width:100%">
            <div id="MenuOne">
                <ul class="ulClass">
                    <li class="liClass">
                        <div class="lileft">菜單一第1項第1列</div>
                        <div class="liright">菜單一第1項第2列</div>
                    </li>
                    <li class="liClass">
                        <div class="lileft">菜單一第2項第1列</div>
                        <div class="liright">菜單一第2項第2列</div>
                    </li>
                    <li class="liClass">
                        <div class="lileft">菜單一第3項第1列</div>
                        <div class="liright">菜單一第3項第2列</div>
                    </li>
                    <li class="liClass">
                        <div class="lileft">菜單一第4項第1列</div>
                        <div class="liright">菜單一第4項第2列</div>
                    </li>
                    <li class="liClass">
                        <div class="lileft">菜單一第5項第1列</div>
                        <div class="liright">菜單一第5項第2列</div>
                    </li>
                </ul>
            </div>
            <div id="MenuTwo" style="display: none;">
                <ul class="ulClass">
                    <li class="liClass">
                        <div class="lileft">菜單二第1項第1列</div>
                        <div class="liright">菜單二第1項第2列</div>
                    </li>
                    <li class="liClass">
                        <div class="lileft">菜單二第2項第1列</div>
                        <div class="liright">菜單二第2項第2列</div>
                    </li>
                    <li class="liClass">
                        <div class="lileft">菜單二第3項第1列</div>
                        <div class="liright">菜單二第3項第2列</div>
                    </li>
                    <li class="liClass">
                        <div class="lileft">菜單二第4項第1列</div>
                        <div class="liright">菜單二第4項第2列</div>
                    </li>
                    <li class="liClass">
                        <div class="lileft">菜單二第5項第1列</div>
                        <div class="liright">菜單二第5項第2列</div>
                    </li>
                </ul>
            </div>
        </div>
        <input id="menuOneTotal" type="hidden" name="menuOneTotal" value="20"/>
        <input id="menuTwoTotal" type="hidden" name="menuTwoTotal" value="15"/>
        <div style="height:15px;"></div>
        <footer>
            <a href="http://www.mozhenlong.com" style="text-decoration: none;">
                <div class="jump-btn">前往我的主頁</div>
            </a>
        </footer>

    </body>

</html>

CSS

<style type="text/css">
            .menuClass{
                display: inline-block;
                width: 180px;
                height: 45px;
                color: #0092EF;
                text-align: center;
                vertical-align: middle;
                line-height: 45px;
            }
            .nav-active{
                border-bottom: 1px solid #999ec2;
            }
            li {
                list-style: none;
            }
            .lileft{
                float: left;
                padding-left: 10px;
            }
            .liright{
                float: right;
                padding-right: 10px;
            }
            .liClass{
                height: 38px;
                border-bottom: 0.01rem solid #d1d0d0;
                vertical-align: middle;
                line-height: 38px;
            }
            footer{
                bottom: 0;
                width: 100%;
                position: fixed;
                text-align: center;
            }
            .ulClass{
                padding: 0;
            }
            body{
                font-family: 微軟雅黑;
                margin: 0;
            }
            .jump-btn{
                background-color: white;
                height: 30px;
                line-height: 30px;
                vertical-align: middle;
            }

        </style>

JQuery

<script type="text/javascript">
        var pageSize = 5;
        //tap 之間的切換
        function switchMenu(srcId) {
            pageSize = 0;
            $("#MenuOne").html("");
            $("#MenuTwo").html("");
            if (srcId == "spanMenuOne") {
                $("#spanMenuTwo").removeClass("nav-active");
                $("#spanMenuOne").addClass("nav-active");
                $("#MenuOne").css("display", "");
                $("#MenuTwo").css("display", "none");
                AppendHtml("MenuOne");
            } else if (srcId == "spanMenuTwo") {
                $("#spanMenuTwo").addClass("nav-active");
                $("#spanMenuOne").removeClass("nav-active");
                $("#MenuOne").css("display", "none");
                $("#MenuTwo").css("display", "");
                AppendHtml("MenuTwo");
            }
        }
        //獲取隱藏域中的總數值
        function getTotal(num) {
            if (num == 1) {
                return parseInt($("#MenuOne").val());
            } else if (num == 2) {
                return parseInt($("#MenuTwo").val());
            }
        }
        function AppendHtml(id){
            var menuNum = "";
            if (id == "MenuOne") {
                menuNum = "一";
            } else if (id == "MenuOne") {
                menuNum = "二";
            }
            if (pageSize >= 30) {
                return;
            } else{
                if ($("#" + id).html() == "") {
                    $("#" + id).append('<ul class="ulClass"></ul>');
                } 
                for (let i=1;i<=5;i++) {
                    var strAppend = '<li class="liClass"><div class="lileft">菜單' + menuNum +'第'
                    var t = pageSize + i;
                    strAppend += t +'項第1列</div><div class="liright">菜單' + menuNum +'第' + t+'項第2列</div></li>';
                    $("#" + id + " ul:first").append(strAppend);
                }
                pageSize += 5;
            }
        }
         //觸摸滑動事件
        var pageIndex = "0";
        var startY, y = 0;
        var isEnd = true;
        //獲取剛觸摸時的縱軸座標   
        function touchSatrt(e) {
            var touch = e.touches[0];
            y = 0;
            startY = touch.pageY;                 
        }
        //獲取滑動的距離
        function touchMove(e) {
            var touch = e.touches[0];
            y = touch.pageY - startY; 
        }
        //判斷是否已達最後一頁
        function IsLastPage(totalPage) {
            if (parseInt(pageIndex) >= parseInt(totalPage)) {
                return true;
            }
            return false;
        }
        //觸摸滑動後手指離開屏幕  
        function touchEnd(e) { 
            if (y < 0) {
                if (e.currentTarget.id == "MenuOne") {
                    if (!IsLastPage(getTotal(2))) {
                        AppendHtml("MenuOne");
                    }
                }
                else if (e.currentTarget.id == "MenuTwo") {
                    if (!IsLastPage(getTotal(1))) {
                        AppendHtml("MenuTwo");
                    }
                }
            }
        }
        //註冊事件
        document.getElementById("MenuOne").addEventListener('touchstart', touchSatrt, false);
        document.getElementById("MenuOne").addEventListener('touchmove', touchMove, false);
        document.getElementById("MenuOne").addEventListener('touchend', touchEnd, false);

        document.getElementById("MenuTwo").addEventListener('touchstart', touchSatrt, false);
        document.getElementById("MenuTwo").addEventListener('touchmove', touchMove, false);
        document.getElementById("MenuTwo").addEventListener('touchend', touchEnd, false);
        </script>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章