欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

JS+CSS如何实现相对定位的下拉菜单

来源:本站整理 作者:佚名 时间:2015-10-26 TAG: 我要投稿

这里使用的是相对定位,不过效果还可以,用时候再修整一下,这个只是实现了大概功能,还有许多细节没有修饰。
运行效果截图如下:

在线演示地址如下:
http://demo.jb51.net/js/2015/js-css-ab-fix-menu-codes/
具体代码如下:
非定位CSS+Js下拉菜单
#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;
}
 language="javascript" type="text/javascript">
var t=false,current;
function SetupMenu() {
 if (!document.getElementsByTagName) return;
 items=document.getElementsByTagName("li");
 for (i=0; iitems.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; jul.childNodes.length; j++) {
   ul.childNodes[j].onmouseover=ResetTimer;
   ul.childNodes[j].onmouseout=StartTimer;
   }
  }
 }
}
function findChild(obj,tag) {
 cn = obj.childNodes;
 for (k=0; kcn.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;
Menu Test
 id="menu">
 class="menu"> href="#">Home
 class="menu"> href="#">Products
 
  href="#">Sub-item 1
  href="#">Sub-item 2
 
 class="menu"> href="#">Support
 
  href="#">Sub-item 1
  href="#">Sub-item 2
 
 class="menu"> href="#">Employment
 
  href="#">Sub-item 1
  href="#">Sub-item 2
 
 class="menu"> href="#">Contact Us
 
  href="#">Sub-item 1
  href="#">Sub-item 2
 
希望本文所述对大家的JavaScript程序设计有所帮助。
 

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载