国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

基于JavaScript實現多級菜單效果

2024-05-06 16:38:36
字體:
來源:轉載
供稿:網友

本文實例為大家分享了js實現多級菜單效果展示的具體代碼,供大家參考,具體內容如下

具體代碼如下:

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <title>Document</title>  <style>    *{      margin:0;      padding:0;      font-size:14px;    }    ul,li{      list-style:none;    }    .box{      margin:10px;      padding:10px;      width:300px;      border:1px dashed #008000;      /*漸進增強:首先設置一個純色的背景,對于不兼容css3的瀏覽器來說會使用純色,對于兼容的瀏覽器,我們在下面在額外的增加一些漸變色,這樣會覆蓋掉上面*/      background:#ffe470;      background:-webkit-linear-gradient(top left,#2b93d2,#fa5889,#cde074,#ffe470);      background:-moz-linear-gradient(top left,#2b93d2,#fa5889,#cde074,#ffe470);      background:-o-linear-gradient(top left,#2b93d2,#fa5889,#cde074,#ffe470);      background:linear-gradient(top left,#2b93d2,#fa5889,#cde074,#ffe470);    }    .box li{      position:relative;      line-height:30px;    }    .box em{      position:absolute;      top:7px;      left:0;      width:16px;      height:16px;      background:url("img/icon.png") no-repeat -59px -28px;      cursor:pointer;    }    .box span{      display:block;      padding-left:20px;    }    .box em.open{      background-position:-42px -28px;    }    .box .two{      margin-left:20px;    }    .box .three{      margin-left:40px;    }    .box .four{      margin-left:60px;    }    .box .two,.box .three,.box .four{      display:none;    }  </style></head><body>  <div class='box' id='box'>    <ul>      <li>        <em></em>        <span>第一級第一個</span>        <ul class='two'>          <li><span>第二級第一個</span></li>          <li>            <em></em><span>第二級第二個</span>            <ul class='three'>              <li><span>第三極第一個</span></li>              <li><span>第三極第二個</span></li>              <li>                <em></em><span>第三極第三個</span>                <ul class='four'>                  <li><span>第四級第一個</span></li>                  <li><span>第四級第二個</span></li>                  <li><span>第四級第三個</span></li>                </ul>              </li>            </ul>          </li>          <li>            <em></em><span>第二級第三個</span>            <ul class='three'>              <li><span>第三級第一個</span></li>              <li><span>第三級第二個</span></li>              <li><span>第三級第三個</span></li>            </ul>          </li>        </ul>      </li>    </ul>    <ul>      <li>        <em></em>        <span>第一級第一個</span>        <ul class='two'>          <li><span>第二級第一個</span></li>          <li>            <em></em><span>第二級第二個</span>            <ul class='three'>              <li><span>第三極第一個</span></li>              <li><span>第三極第二個</span></li>              <li>                <em></em><span>第三極第三個</span>                <ul class='four'>                  <li><span>第四級第一個</span></li>                  <li><span>第四級第二個</span></li>                  <li><span>第四級第三個</span></li>                </ul>              </li>            </ul>          </li>          <li>            <em></em><span>第二級第三個</span>            <ul class='three'>              <li><span>第三級第一個</span></li>              <li><span>第三級第二個</span></li>              <li><span>第三級第三個</span></li>            </ul>          </li>        </ul>      </li>    </ul>  </div>  <script>    var box = document.getElementById('box');    //把列表中的span(前面有em的span)設置一個 cursor:pointer的樣式    var spanList = box.getElementsByTagName("span");    for(var i = 0;i<spanList.length;i++){      var curSpan = spanList[i];      var curPre = utils.prev(curSpan);      if(curPre && curPre.tagName.toLowerCase()==="em"){        curSpan.style.cursor = "pointer"      }    }    //使用事件委托實現我們的操作    box.onclick = function(e){      e = e || window.event;      var tar = e.target || e.srcElement;      //只有點擊的是em或者span標簽,我們才進行展開收縮的操作      if(/^(em|span)$/i.test(tar.tagName)){        var parent = tar.parentNode;//獲取父親        var firstUl = utils.children(parent,"ul")[0]//獲取父親子集中的第一個ul標簽        var oEm = utils.children(parent,"em")[0]        if(firstUl){          //如果隱藏讓顯示,否則讓隱藏          var isBlock = utils.getCss(firstUl,"display") === "block" ? true : false;          if(isBlock){            firstUl.style.display = "none";            if(oEm){              utils.removeClass(oEm,"open")            }            //當外層的收起,里層所有的ul都要隱藏,所有的em都要移除open樣式            var allUl = parent.getElementsByTagName("ul"),allEm = parent.getElementsByTagName("em");            for(var i = 0;i<allUl.length;i++){              allUl[i].style.display = "none";              utils.removeClass(allEm[i],"open");            }          }else{            firstUl.style.display = "block";            if(oEm){              utils.addClass(oEm,"open")            }          }        }      }    }  </script></body></html>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 孝感市| 金昌市| 云霄县| 密云县| 沈阳市| 隆化县| 寻乌县| 绥宁县| 青川县| 循化| 马公市| 环江| 枞阳县| 巩留县| 岳阳县| 成安县| 商城县| 兴宁市| 克山县| 厦门市| 当涂县| 定安县| 亳州市| 罗山县| 项城市| 宾阳县| 兰考县| 西盟| 蓬安县| 礼泉县| 洛川县| 巨野县| 河西区| 怀宁县| 元谋县| 南充市| 平原县| 栾川县| 阿拉善盟| 岳西县| 犍为县|