JS+CSS相對定位實現(xiàn)的下拉菜單
本文實例講述了JS+CSS相對定位實現(xiàn)的下拉菜單。分享給大家供大家參考。具體如下:
這里使用的是相對定位,不過效果還可以,用時候再修整一下,這個只是實現(xiàn)了大概功能,還有許多細節(jié)沒有修飾。
運行效果截圖如下:

在線演示地址如下:
http://demo.jb51.net/js/2015/js-css-ab-fix-menu-codes/
具體代碼如下:
<html>
<head>
<title>非定位CSS+Js下拉菜單</title>
<style>
#menu {
position: absolute;
font-family: sans-serif;
font-size: 9pt;
}
#menu li {
float: left;
list-style-type: none;
width: 102px;
background-color: skyblue;
border: 1px solid #0066cc;
text-indent: 0px;
margin-left: 3px;
}
#menu li a {
color: blue;
text-decoration: none;
width: 100%;
display: block;
}
#menu li a:hover {
color: white;
}
#menu li ul {
background-color: skyblue;
margin: 0px;
padding: 0px;
}
#menu li ul li {
padding: 0px;
margin: 0px;
float: none;
list-style-type: none;
width: 100px;
text-indent: 0px;
border: none;
}
#menu li ul li a{
color: black;
text-decoration: none;
}
#menu li ul li a:hover{
color: black;
background-color: aqua;
}</style>
<script language="javascript" type="text/javascript">
var t=false,current;
function SetupMenu() {
if (!document.getElementsByTagName) return;
items=document.getElementsByTagName("li");
for (i=0; i<items.length; i++) {
if (items[i].className != "menu") continue;
thelink=findChild(items[i],"A");
thelink.onmouseover=ShowMenu;
thelink.onmouseout=StartTimer;
if (ul=findChild(items[i],"UL")) {
ul.style.display="none";
for (j=0; j<ul.childNodes.length; j++) {
ul.childNodes[j].onmouseover=ResetTimer;
ul.childNodes[j].onmouseout=StartTimer;
}
}
}
}
function findChild(obj,tag) {
cn = obj.childNodes;
for (k=0; k<cn.length; k++) {
if (cn[k].nodeName==tag) return cn[k];
}
return false;
}
function ShowMenu(e) {
if (!e) var e = window.event;
thislink = (e.target) ? e.target: e.srcElement;
ResetTimer();
if (current) HideMenu(current);
thislink = thislink.parentNode;
current=thislink;
ul = findChild(thislink,"UL");
if (!ul) return;
ul.style.display="block";
}
function HideMenu(thelink) {
ul = findChild(thelink,"UL");
if (!ul) return;
ul.style.display="none";
}
function ResetTimer() {
if (t) window.clearTimeout(t);
}
function StartTimer() {
t = window.setTimeout("HideMenu(current)",200);
}
window.onload=SetupMenu;
</script>
</head>
<body>
<h1>Menu Test</h1>
<ul id="menu">
<li class="menu"><a href="#">Home</a></li>
<li class="menu"><a href="#">Products</a>
<ul>
<li><a href="#">Sub-item 1</a></li>
<li><a href="#">Sub-item 2</a></li>
</ul>
</li>
<li class="menu"><a href="#">Support</a>
<ul>
<li><a href="#">Sub-item 1</a></li>
<li><a href="#">Sub-item 2</a></li>
</ul>
</li>
<li class="menu"><a href="#">Employment</a>
<ul>
<li><a href="#">Sub-item 1</a></li>
<li><a href="#">Sub-item 2</a></li>
</ul>
</li>
<li class="menu"><a href="#">Contact Us</a>
<ul>
<li><a href="#">Sub-item 1</a></li>
<li><a href="#">Sub-item 2</a></li>
</ul>
</li>
</ul>
</body>
</html>
希望本文所述對大家的JavaScript程序設計有所幫助。
- JavaScript實現(xiàn)下拉列表框數(shù)據(jù)增加、刪除、上下排序的方法
- avalon js實現(xiàn)仿微博拖動圖片排序
- js實現(xiàn)全國省份城市級聯(lián)下拉菜單效果代碼
- js+css實現(xiàn)超簡潔的二級下拉菜單效果代碼
- js實現(xiàn)兼容性好的微軟官網(wǎng)導航下拉菜單效果
- 頁面內(nèi)容排序插件jSort使用方法
- jsp從數(shù)據(jù)庫獲取數(shù)據(jù)填充下拉框?qū)崿F(xiàn)二級聯(lián)動菜單的方法
- javascript實現(xiàn)省市區(qū)三級聯(lián)動下拉框菜單
- 使用Javascript實現(xiàn)選擇下拉菜單互移并排序
相關文章
javascript中的self和this用法小結(jié)
本篇文章主要是對javascript中的self和this用法進行了詳細的總結(jié)介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-02-02
javascript+css 網(wǎng)頁每次加載不同樣式的實現(xiàn)方法
用戶每次訪問時隨機載入樣式,讓微博在視覺上保持新鮮感。雖然思路與實現(xiàn)都比較簡單,但還是想記錄下來,與大家分享。2009-12-12
?JavaScript?數(shù)據(jù)結(jié)構之散列表的創(chuàng)建(1)
這篇文章主要介紹了?JavaScript?數(shù)據(jù)結(jié)構之散列表的創(chuàng)建,文章圍繞主題相關內(nèi)容展開詳細的介紹,需要的小伙伴可以參考一下2022-04-04
layer彈出子iframe層父子頁面?zhèn)髦档膶崿F(xiàn)方法
這篇文章主要介紹了layer彈出子iframe層父子頁面?zhèn)髦档膶崿F(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-11-11
bootstrap confirmation按鈕提示組件使用詳解
這篇文章主要為大家詳細介紹了bootstrap confirmation按鈕提示組件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08
Javascript 中的 && 和 || 使用小結(jié)
Javascript 中的 && 和 || ,有時候用作條件判斷,非常的簡潔,不熟悉的朋友可能不太了解,這里最后有個朋友補充,非常的好。2010-04-04

