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

首頁 > 編程 > JavaScript > 正文

javascript下拉列表菜單的實現方法

2019-11-20 11:14:29
字體:
來源:轉載
供稿:網友

之前寫過這個《javascript下拉列表中顯示樹形菜單的實現方法》菜單的體現,但是在寫了之后就發現了,不太適合,高度要精準控制,并且還不是很好看。現在采用table來封裝,我們知道table的每一行寫滿了之后,下一行會自動加,這個比之前我們自己制定高度好很多。
1、點擊之后都可以并存的情況(只需函數寫法不一樣就可)
dispaly也是自己設置的,通過父節點來操作子節點,顯示與否;

/* function open1(node){       //通過父節點來操作兄弟節點        當點擊之后出現之后,直接就能打開但是要求在點開一個時候,其余的都關掉      var nodes = node.parentNode;     var nn = nodes.getElementsByTagName("ul")[0];     with (nn.style) {      display = (display == "block") ? "none" : "block";     }    }*/    </script> 

2、點擊之后只允許打開一個,其余的都要關掉

<script type="text/javascript">     function list1(node){     //這是要對全部操作,必須要得到所有的對象 (根據table 的id 來獲得)     //根據this判斷,不是屬于this,那么就關閉     //alert("aa");     //1,獲得點擊對象的值     var nodes = node.parentNode;//傳入當前的父節點     var nn = nodes.getElementsByTagName("ul")[0];//得到當前的對象,要是遍歷所有,與這個對象一樣,就設置相反的情況,其余的全部關閉     //2,獲得全部對象     var mm = document.getElementById("menuid");     var names = mm.getElementsByTagName("ul");          //3,開始一一配對     for (var x = 0; x < names.length; x++) {      /*這樣寫,可以簡化,利用下面的方法       if (names[x] == nn) {       if (nn.className == "open2") {        nn.className = "close2";       }       else {        nn.className = "open2";       }      }else {       nn.className = "close2";      }*/      if(names[x]==nn&&names[x].className!="open2"){        nn.className="open2";      }else{        names[x].className="close2";      }     }    }  </script>

 css樣式的編寫:

<style type="text/css">   ul{    list-style:none;    margin:0px;    padding:0px;   }   table{    border:#00ff40 solid 1px;   }   table a{    text-decoration:none;   }   table tr td ul{    display:none;   }   .open2{    display:block;    background:#8080ff;   }   .close2{    display:none;   } 

效果圖(只能開一個的):

完整代碼:

<!DOCTYPE html> <html>  <head>  <title>qqMenu.html</title>  <style type="text/css">   ul{    list-style:none;    margin:0px;    padding:0px;   }   table{    border:#00ff40 solid 1px;   }   table a{    text-decoration:none;   }   table tr td ul{    display:none;   }   .open2{    display:block;    background:#8080ff;   }   .close2{    display:none;   }  </style>  <script type="text/javascript">   /* function open1(node){       //通過父節點來操作兄弟節點        當點擊之后出現之后,直接就能打開但是要求在點開一個時候,其余的都關掉      var nodes = node.parentNode;     var nn = nodes.getElementsByTagName("ul")[0];     with (nn.style) {      display = (display == "block") ? "none" : "block";     }    }*/    </script>    <script type="text/javascript">     function list1(node){     //這是要對全部操作,必須要得到所有的對象 (根據table 的id 來獲得)     //根據this判斷,不是屬于this,那么就關閉     //alert("aa");     //1,獲得點擊對象的值     var nodes = node.parentNode;//傳入當前的父節點     var nn = nodes.getElementsByTagName("ul")[0];//得到當前的對象,要是遍歷所有,與這個對象一樣,就設置相反的情況,其余的全部關閉     //2,獲得全部對象     var mm = document.getElementById("menuid");     var names = mm.getElementsByTagName("ul");          //3,開始一一配對     for (var x = 0; x < names.length; x++) {      /*這樣寫,可以簡化,利用下面的方法       if (names[x] == nn) {       if (nn.className == "open2") {        nn.className = "close2";       }       else {        nn.className = "open2";       }      }else {       nn.className = "close2";      }*/      if(names[x]==nn&&names[x].className!="open2"){        nn.className="open2";      }else{        names[x].className="close2";      }     }    }  </script>    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->  </head>   <body >  <table id="menuid">   <tr>    <td>     <!--<a href="javascript:void(0)" onclick="open1(this)">同事欄</a>-->     <a href="javascript:void(0)" onclick="list1(this)">同事欄</a>     <ul >      <li>同事1</li>      <li>同事2</li>      <li>同事3</li>      <li>同事4</li>     </ul>         </td>   </tr>   <tr>    <td>     <!--<a href="javascript:void(0)" onclick="open1(this)">同學欄</a>-->     <a href="javascript:void(0)" onclick="list1(this)">同學欄</a>     <ul>      <li>同學1</li>      <li>同學2</li>      <li>同學3</li>      <li>同學4</li>     </ul>    </td>   </tr>   <tr>    <td>     <!--<a href="javascript:void(0)" onclick="open1(this)">黑名單欄</a>-->     <a href="javascript:void(0)" onclick="list1(this)">黑名單欄</a>     <ul>      <li>黑名單同學1</li>      <li>黑名單同學2</li>      <li>黑名單同學3</li>      <li>黑名單同學4</li>     </ul>    </td>   </tr>    </table>  </body> </html> 

相信大家通過這兩篇文章的介紹應該有了大概的思路,小編的這篇文章有些制作的效果略微簡陋,大家可以再進一步的完善。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 襄城县| 石渠县| 桃园市| 改则县| 乌拉特前旗| 绥江县| 南平市| 阜康市| 安泽县| 鄂州市| 木里| 延庆县| 霍林郭勒市| 新邵县| 金沙县| 万州区| 卢氏县| 河西区| 双牌县| 舞阳县| 定西市| 筠连县| 瑞安市| 宁河县| 池州市| 新蔡县| 托克逊县| 喜德县| 家居| 虎林市| 滁州市| 高要市| 修武县| 平武县| 曲松县| 连平县| 南郑县| 灌南县| 怀安县| 博白县| 灵寿县|