1. 程式人生 > >摺疊面板的改進【Amaze UI】

摺疊面板的改進【Amaze UI】

摺疊面板或者說摺疊列表在移動端的使用非常廣泛,不僅可以讓頁面渲染地更簡潔,而且使用起來也是很大方,很實用。在做專案的過程中,我應用到了這個功能,進行了改進並應用,接下來詳細講解。

結果展示:


html頁面程式碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!--自動適應移動螢幕-->
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <!--優先使用webkit核心渲染-->
    <meta name="renderer" content="webkit">
    <!--不要被百度轉碼-->
    <meta http-equiv="Cache-Control" content="no-siteapp"/>
    <title>Title</title>
    <!--以下才是引入amazeui資源-->
    <link href="css/amazeui.css" rel="stylesheet">
    <link href="css/摺疊面板.css" rel="stylesheet">
    <!--引入js的時候要注意,必須先引入jQuery,再引入amazeui,因為這個框架是基於jQuery開發的-->
    <script src="js/jquery-3.1.0.min.js" language="JavaScript" charset="utf-8"></script>
    <!--以下才是引入amazeui資源-->
    <script src="js/amazeui.js" language="JavaScript" charset="utf-8"></script>
</head>
<body>
<ul class="am-list admin-sidebar-list" id="collapase-nav-1">
    <li  class="am-panel">
        <a data-am-collapse="{parent: '#collapase-nav-1'}" href="#/">
            <i class="am-margin-left-sm"></i>
            首頁
        </a>
    </li>

    <li class="am-panel">
        <a id="web" data-am-collapse="{parent: '#collapase-nav-1', target: '#web-nav'}">
            <i class="am-margin-left-sm"></i> 前端開發
            <i id="web-icon" class="am-icon-angle-right am-fr am-margin-right"></i>
        </a>
        <ul class="am-list am-collapse admin-sidebar-sub" id="web-nav">
            <li><a href="#"><i class="am-margin-left-sm"></i> JavaScript </a></li>
            <li><a href="#"><i class="am-margin-left-sm"></i> jQuery </a></li>
            <li><a href="#"><i class="am-margin-left-sm"></i> HTML5 </a></li>
        </ul>
    </li>

    <li class="am-panel">
        <a id="bg" data-am-collapse="{parent: '#collapase-nav-1', target: '#bg-nav'}">//這個target指向的是摺疊面板中的id
            <i class="am-margin-left-sm"></i> 後臺開發
            <i id="bg-icon" class="am-icon-angle-right am-fr am-margin-right"></i>
        </a>
        <ul class="am-list am-collapse admin-sidebar-sub" id="bg-nav">//id的名字與前面的target是一樣的
            <li><a href="#"><span class="am-margin-left-sm"></span> Python </a></li>
            <li><a href="#"><span class="am-margin-left-sm"></span> PHP </a></li>
            <li><a href="#"><span class="am-margin-left-sm"></span> J2EE </a></li>
        </ul>
    </li>

    <li class="am-panel">
        <a id="database"data-am-collapse="{parent: '#collapase-nav-1', target: '#database-nav'}">
            <i class="am-margin-left-sm"></i> 資料庫
            <i id="database-icon" class="am-icon-angle-right am-fr am-margin-right"></i>
        </a>
        <ul class="am-list am-collapse admin-sidebar-sub" id="database-nav">
            <li><a href="#"><span class="am-margin-left-sm"></span> MySQL </a></li>
            <li><a href="#"><span class="am-margin-left-sm"></span> NoSQL</a></li>
        </ul>
    </li>
</ul>
</body>
</html>
改進:

我把右邊“<”的圖示進行了修改,希望能夠在點選的時候變成“^”,然後再點選收回的時候又變回原來的圖示。

所以我自己寫了一段js程式碼,我為了方便,對每個單獨的摺疊進行了修改,到後面可以進行整合,不用單獨分開寫。

<script>
        window.onload=function(){
            $('#web-nav').on('open.collapse.amui', function() {//open方法被呼叫時立即觸發
                $("#web #web-icon").attr("class","am-icon-angle-down am-fr am-margin-right");
            }).on('close.collapse.amui', function() {//close方法呼叫時立即觸發
                $("#web #web-icon").attr("class","am-icon-angle-right am-fr am-margin-right");
            });

            $('#bg-nav').on('open.collapse.amui', function() {
                $("#bg #bg-icon").attr("class","am-icon-angle-down am-fr am-margin-right");
            }).on('close.collapse.amui', function() {
                $("#bg #bg-icon").attr("class","am-icon-angle-right am-fr am-margin-right");
            });

            $('#database-nav').on('open.collapse.amui', function() {
                $("#database #database-icon").attr("class","am-icon-angle-down am-fr am-margin-right");
            }).on('close.collapse.amui', function() {
                $("#database #database-icon").attr("class","am-icon-angle-right am-fr am-margin-right");
            });
        }
    </script>
其中涉及到的方法在Amaze UI的官網上也能夠看到。

事件 描述
open.collapse.amui open 方法被呼叫時立即觸發
opened.collapse.amui 元素完全展開後觸發
close.collapse.amui close 方法被呼叫後立即觸發
closed.collapse.amui 元素摺疊完成後觸發