JS 實現導覽功能表中的二級下拉式功能表的幾種方式_javascript技巧

來源:互聯網
上載者:User

最近整理了, JS 實現導覽功能表中的二級下拉式功能表的三種方式,便於項目中應用。

 如何?導覽功能表欄中的二級下拉式功能表?

  我們在淘寶、搜狐等大型網站上都可以看到使用的一些二級下拉式功能表,比如下面這張圖片。

但是如何?類似的圖片呢?實際上,我們有至少三種方式來實現,下面,我附上代碼供大家參考。

1.僅使用html和css

<meta charset="UTF-8"><title>Document</title><style>*{margin:0;padding: 0;list-style: none;text-decoration: none;}#nav{width: 500px;height: 40px;background: #ccc;margin: 0 auto;}ul{background: #aaa}ul li{float:left; display:block; height: 40px; line-height: 40px; padding: 0 20px; position: relative;}ul li:hover{background: #cea;}ul li ul li{float: none;}/*關鍵一:將二級菜單設定為display:none;*/ul li ul{position: absolute;top:40px;left: 0; display: none;}ul li ul li:hover{background: red;}/*關鍵二:在划過二級菜單從屬的一級菜單時,設定為display:block;*/ul li:hover ul{display: block;}</style>  <div id="nav">  <ul>    <li><a href="">首頁</a></li>    <li><a href="">汽車</a>      <ul>        <li><a href="#">奧迪</a> </li>        <li><a href="#">道奇</a> </li>      </ul>    </li>    <li><a href="">手機</a>      <ul>        <li><a href="#">小米</a> </li>        <li><a href="#">華為</a> </li>      </ul>    </li>    <li><a href="">聯絡我們</a></li>  </ul></div> 

  我們可以看到,這種方法是比較好的,它保證了結構與表現的完全分離。

2.用javascript實現

<meta charset="UTF-8"><title>Document</title><style>*{margin:0;padding: 0;list-style: none;text-decoration: none;}#nav{width: 500px;height: 40px;background: #ccc;margin: 0 auto;}ul{background: #aaa}ul li{float:left; display:block; height: 40px; line-height: 40px; padding: 0 20px; position: relative;}ul li:hover{background: #cea;}ul li ul li{float: none;}ul li ul{position: absolute;top:40px;left: 0; display:none;}ul li ul li:hover{background: red;}</style>  <div id="nav">  <ul>    <li><a href="#">首頁</a></li>    <li onmouseover="show(this)" onmouseout="hide(this)"><a href="#">汽車</a>  <!-- 關鍵一:在二級標題從屬的一級標題標籤內設定時間執行程式,this代表的時這個li元素 -->      <ul>        <li><a href="#">奧迪</a> </li>        <li><a href="#">道奇</a> </li>      </ul>    </li>    <li onmouseover="show(this)" onmouseout="hide(this)"><a href="#">手機</a>      <ul>        <li><a href="#">小米</a> </li>        <li><a href="#">華為</a> </li>      </ul>    </li>    <li><a href="#">聯絡我們</a></li>  </ul></div> 

使用javascript實現起來較為麻煩,且這裡結構和行為沒有分開(雖然可以試用dom在JavaScript中建立使得結構和行為分開,但十分繁瑣),不推薦。

3.用jQuery實現

  jQuery是一種javascript庫,我們可以在jQuery官網上下載最新版本的庫檔案,其中壓縮的檔案是用於產品的,為壓縮的檔案是便於開發人員學習和調試的。下載到本機以後,需要將庫檔案引用到html中,由於jQuery本質上也是JavaScript,所以引用方式為:

    <script src="路徑名稱"></script>  

用jQuery實現二級下拉式功能表的代碼如下:

<meta charset="UTF-8"><title>Document</title><style>*{margin:0;padding: 0;list-style: none;text-decoration: none;}#nav{width: 500px;height: 40px;background: #ccc;margin: 0 auto;}ul{background: #aaa}ul li{float:left; display:block; height: 40px; line-height: 40px; padding: 0 20px; position: relative;}ul li:hover{background: #cea;}ul li ul li{float: none;}ul li ul{position: absolute;top:40px;left: 0; display: none;}ul li ul li:hover{background: red;}</style>  <div id="nav">  <ul>    <li><a href="">首頁</a></li>    <li class="navmenu"><a href="">汽車</a>      <ul>        <li><a href="#">奧迪</a> </li>        <li><a href="#">道奇</a> </li>      </ul>    </li>    <li class="navmenu"><a href="">手機</a>      <ul>        <li><a href="#">小米</a> </li>        <li><a href="#">華為</a> </li>      </ul>    </li>    <li><a href="">聯絡我們</a></li>  </ul></div> 

 <!-- 關鍵一:引入jQuery庫檔案 -->

 顯然,使用jQuery是非常方便的。

 

最終的實現效果如下;

即當滑鼠划過一級菜單時,會出現相應的二級菜單。

 感謝閱讀,希望能協助到大家,謝謝大家對本站支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.