国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凤山市| 通化县| 柳河县| 奉化市| 桃园县| 济源市| 滨州市| 阜新市| 肥城市| 威海市| 安阳市| 吴川市| 惠来县| 南投县| 黎川县| 溆浦县| 怀集县| 乐清市| 巩留县| 漯河市| 东乌珠穆沁旗| 苗栗市| 岱山县| 台南县| 鄂托克前旗| 庆元县| 高要市| 通许县| 承德县| 宝丰县| 嵊泗县| 沁源县| 曲沃县| 喀喇沁旗| 天气| 阳朔县| 改则县| 都安| 松阳县| 莱阳市| 蓬安县|