注册
 找回密码
 注册
江西广告网
查看: 3132|回复: 0
打印 上一主题 下一主题

非定位CSS+Js下拉菜单

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2009-10-9 02:30:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
非定位CSS+Js下拉菜单,看一下就会明白了,使用的是相对定位,不过效果还可以,用时候再修整一下,这个只是实现了大概功能,还有许多细节没有修饰。
  1. <html>
  2. <head>
  3. <title>非定位CSS+Js下拉菜单</title>
  4. <style>
  5. #menu {
  6.    position: absolute;
  7.    font-family: sans-serif;
  8.    font-size: 9pt;
  9. }
  10. #menu li {
  11.    float: left;
  12.    list-style-type: none;
  13.    width: 102px;
  14.    background-color: skyblue;
  15.    border: 1px solid #0066cc;
  16.    text-indent: 0px;
  17.    margin-left: 3px;
  18. }
  19. #menu li a {
  20.    color: blue;
  21.    text-decoration: none;
  22.    width: 100%;
  23.    display: block;
  24. }
  25. #menu li a:hover {
  26.    color: white;
  27. }
  28. #menu li ul {
  29.    background-color: skyblue;
  30.    margin: 0px;
  31.    padding: 0px;
  32. }
  33. #menu li ul li {
  34.    padding: 0px;
  35.    margin: 0px;
  36.    float: none;
  37.    list-style-type: none;
  38.    width: 100px;
  39.    text-indent: 0px;
  40.    border: none;
  41. }
  42. #menu li ul li a{
  43.    color: black;
  44.    text-decoration: none;
  45. }
  46. #menu li ul li a:hover{
  47.    color: black;
  48.    background-color: aqua;
  49. }</style>
  50. <script language="javascript" type="text/javascript">
  51. var t=false,current;
  52. function SetupMenu() {
  53.    if (!document.getElementsByTagName) return;
  54.    items=document.getElementsByTagName("li");
  55.    for (i=0; i<items.length; i++) {
  56.       if (items[i].className != "menu") continue;
  57.       thelink=findChild(items[i],"A");
  58.       thelink.onmouseover=ShowMenu;
  59.       thelink.onmouseout=StartTimer;
  60.       if (ul=findChild(items[i],"UL")) {
  61.          ul.style.display="none";
  62.          for (j=0; j<ul.childNodes.length; j++) {
  63.             ul.childNodes[j].onmouseover=ResetTimer;
  64.             ul.childNodes[j].onmouseout=StartTimer;
  65.          }
  66.       }
  67.    }
  68. }

  69. function findChild(obj,tag) {
  70.    cn = obj.childNodes;
  71.    for (k=0; k<cn.length; k++) {
  72.      if (cn[k].nodeName==tag) return cn[k];
  73.    }
  74.    return false;
  75. }

  76. function ShowMenu(e) {
  77.    if (!e) var e = window.event;
  78.    thislink = (e.target) ? e.target: e.srcElement;
  79.    ResetTimer();
  80.    if (current) HideMenu(current);
  81.    thislink = thislink.parentNode;
  82.    current=thislink;
  83.    ul = findChild(thislink,"UL");
  84.    if (!ul) return;
  85.    ul.style.display="block";
  86. }

  87. function HideMenu(thelink) {
  88.    ul = findChild(thelink,"UL");
  89.    if (!ul) return;
  90.    ul.style.display="none";
  91. }

  92. function ResetTimer() {
  93.    if (t) window.clearTimeout(t);
  94. }

  95. function StartTimer() {
  96.    t = window.setTimeout("HideMenu(current)",200);
  97. }

  98. window.onload=SetupMenu;
  99. </script>
  100. </head>
  101. <body>
  102. <h1>Menu Test</h1>
  103. <ul id="menu">
  104. <li class="menu"><a href="#">Home</a></li>
  105. <li class="menu"><a href="#">Products</a>
  106.    <ul>
  107.     <li><a href="#">Sub-item 1</a></li>
  108.     <li><a href="#">Sub-item 2</a></li>
  109.    </ul>
  110. </li>
  111. <li class="menu"><a href="#">Support</a>
  112.    <ul>
  113.     <li><a href="#">Sub-item 1</a></li>
  114.     <li><a href="#">Sub-item 2</a></li>
  115.    </ul>
  116. </li>
  117. <li class="menu"><a href="#">Employment</a>
  118.    <ul>
  119.     <li><a href="#">Sub-item 1</a></li>
  120.     <li><a href="#">Sub-item 2</a></li>
  121.    </ul>
  122. </li>
  123. <li class="menu"><a href="#">Contact Us</a>
  124.    <ul>
  125.     <li><a href="#">Sub-item 1</a></li>
  126.     <li><a href="#">Sub-item 2</a></li>
  127.    </ul>
  128. </li>
  129. </ul>
  130. </body>
  131. </html>
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表