JS 實現(xiàn)導(dǎo)航菜單中的二級下拉菜單的幾種方式
最近整理了, JS 實現(xiàn)導(dǎo)航菜單中的二級下拉菜單的三種方式,便于項目中應(yīng)用。
如何實現(xiàn)導(dǎo)航菜單欄中的二級下拉菜單?
我們在淘寶、搜狐等大型網(wǎng)站上都可以看到使用的一些二級下拉菜單,比如下面這張圖片。

但是如何實現(xiàn)類似的圖片呢?實際上,我們有至少三種方式來實現(xiàn),下面,我附上代碼供大家參考。
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;}
/*關(guān)鍵一:將二級菜單設(shè)置為display:none;*/
ul li ul{position: absolute;top:40px;left: 0; display: none;}
ul li ul li:hover{background: red;}
/*關(guān)鍵二:在劃過二級菜單從屬的一級菜單時,設(shè)置為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="">聯(lián)系我們</a></li>
</ul>
</div>
我們可以看到,這種方法是比較好的,它保證了結(jié)構(gòu)與表現(xiàn)的完全分離。
2.用javascript實現(xiàn)
<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>
<!-- 關(guān)鍵一:在二級標(biāo)題從屬的一級標(biāo)題標(biāo)簽內(nèi)設(shè)置時間執(zhí)行程序,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="#">聯(lián)系我們</a></li>
</ul>
</div>
使用javascript實現(xiàn)起來較為麻煩,且這里結(jié)構(gòu)和行為沒有分開(雖然可以試用dom在JavaScript中創(chuàng)建使得結(jié)構(gòu)和行為分開,但十分繁瑣),不推薦。
3.用jQuery實現(xiàn)
jQuery是一種javascript庫,我們可以在jQuery官網(wǎng)上下載最新版本的庫文件,其中壓縮的文件是用于產(chǎn)品的,為壓縮的文件是便于開發(fā)人員學(xué)習(xí)和調(diào)試的。下載到本機以后,需要將庫文件引用到html中,由于jQuery本質(zhì)上也是JavaScript,所以引用方式為:
<script src="路徑名稱"></script>
用jQuery實現(xiàn)二級下拉菜單的代碼如下:
<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="">聯(lián)系我們</a></li>
</ul>
</div>
<!-- 關(guān)鍵一:引入jQuery庫文件 -->
顯然,使用jQuery是非常方便的。

最終的實現(xiàn)效果如下;
即當(dāng)鼠標(biāo)劃過一級菜單時,會出現(xiàn)相應(yīng)的二級菜單。
感謝閱讀,希望能幫助到大家,謝謝大家對本站支持!
- js實現(xiàn)前端界面導(dǎo)航欄下拉列表
- JS中用三種方式實現(xiàn)導(dǎo)航菜單中的二級下拉菜單
- 原生JS實現(xiàn)導(dǎo)航下拉菜單效果
- JS+CSS實現(xiàn)簡單的二級下拉導(dǎo)航菜單效果
- javascript仿京東導(dǎo)航左側(cè)分類導(dǎo)航下拉菜單效果
- js+div+css下拉導(dǎo)航菜單完整代碼分享
- javascript實現(xiàn)帶下拉子菜單的導(dǎo)航菜單效果
- 頂部緩沖下拉菜單導(dǎo)航特效的JS代碼
- 基于JS快速實現(xiàn)導(dǎo)航下拉菜單動畫效果附源碼下載
- JavaScript實現(xiàn)HTML導(dǎo)航欄下拉菜單
相關(guān)文章
javascript:;與javascript:void(0)使用介紹
有時候我們在編寫js過程中,需要觸發(fā)事件而不需要返回值,那么就可能需要這樣的寫法2013-06-06
window.open以post方式將內(nèi)容提交到新窗口
最近在做web項目,碰到需要跨頁面?zhèn)鬟f參數(shù)的功能,就是那種需要把當(dāng)前頁面的內(nèi)容帶到新開的子窗體中,以前的做法是傳一個id過去,然后在新窗口中去讀數(shù)據(jù)庫的內(nèi)容;比較有意思的是直接通過調(diào)用form的submit方法不能觸發(fā)onsubmit事件,查看了幫助文檔,必須手動的觸發(fā),否則只能看到頁面刷新而沒有打開新窗口2012-12-12
不錯的用外部Javascript修正特定網(wǎng)頁內(nèi)容
不錯的用外部Javascript修正特定網(wǎng)頁內(nèi)容...2007-08-08
JS實現(xiàn)可編輯的后臺管理菜單功能【附demo源碼下載】
這篇文章主要介紹了JS實現(xiàn)可編輯的后臺管理菜單功能,涉及javascript針對頁面元素的遍歷及動態(tài)修改相關(guān)操作技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-09-09

