web實現點擊左側導航,右側加載不同的網頁(這種布局多用於后台管理系統)


(1)實現方法:采用ajax實現點擊左側菜單,右側加載不同網頁(在整個頁面無刷新的情況下實現右側局部刷新,用到ajax注意需要在服務器環境下運行,從HBuilder自帶的服務器中打開瀏覽效果即可)

(2)原理:ajax的局部刷新原理:通過.load()重新加載頁面中的某一部分,巧妙的借助data-*的自定義屬性來存儲數據,點擊的時候修改錨點,因為地址有變,所以刷新的時候仍然會保持當前的頁面內容而不是切換到第一個。

(3)適用場景:遇到ajax局部刷新的需求也有很多,有時候比較簡單,當內容較少,適合做成選項卡;如果網頁的左側有一個列表,點擊列表使右側的內容進行切換,如果右側的內容過多,不適合做選項卡,這時候用.load()局部刷新最好不過了,在項目中經常使用到流程管理后台,便是左右結構布局,這個時候,簡單的demo示例如下

 

<!DOCTYPE html>
<html lang="en">
    <head>
        <title>ajax局部刷新</title>
        <style>
            .userMenu {
                float: left;
                width: 200px;
            }
            #content {
                float: left;
            }
        </style>
        <meta charset="utf-8"/>
        <script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
    </head>
    <body>
        <div class="userWrap">
            <ul class="userMenu">
                <li class="current" data-id="center">用戶中心</li>
                <li data-id="account">賬戶信息</li>
                <li data-id="trade">交易記錄</li>
                <li data-id="info">消息中心</li>
            </ul>
            <div id="content"></div>
        </div>
    </body>
    <script>
        $(function() {
            $(".userMenu").on("click", "li", function() {
                var sId = $(this).data("id"); //獲取data-id的值
                window.location.hash = sId; //設置錨點
                loadInner(sId);
            });
 
            function loadInner(sId) {
                var sId = window.location.hash;
                var pathn, i;
                switch(sId) {
                    case "#center":
                        pathn = "user_center.html";
                        i = 0;
                        break;       
                    case "#account":
                        pathn = "user_account.html";
                        i = 1;
                        break;
                    case "#trade":
                        pathn = "user_trade.html";
                        i = 2;
                        break;
                    case "#info":
                        pathn = "user_info.html";
                        i = 3;
                        break;      
                    default:
                        pathn = "user_center.html";
                        i = 0;
                        break;
                }
                $("#content").load(pathn); //加載相對應的內容
                $(".userMenu li").eq(i).addClass("current").siblings().removeClass("current"); //當前列表高亮
            }
            var sId = window.location.hash;
            loadInner(sId);
        });
    </script>
</html>

  

創建右側對應的幾個新的html頁面user_center.html,user_account.html,user_trade.html,user_info.html

user_center.html
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <div>
          用戶中心
          用戶中心
          用戶中心
        </div>
    </body>
</html>
         

  

user_account.html
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <div>
            賬戶信息
            賬戶信息
            賬戶信息
         </div>
    </body>
</html>        

  

user_trade.html
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <div>
          交易中心
          交易中心
          交易中心
    </div>
    </body>
</html>
                                         

  

user_info.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <div>
            消息中心
            消息中心
           消息中心
         </div>
    </body>
</html>    

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM