四级下拉菜单

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>炫浪网设计素材资源站-仿FLASH效果的四级下拉菜单</title>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<!--把下面代码加到<head>与</head>之间-->
<style type="text/css">
body {margin:0; font:14px "Arial"; background:#fff; padding:0;}
ul.menu {list-style:none; margin:0; padding:0; height:35px; line-height:35px;}
ul.menu * {margin:0; padding:0}
ul.menu a {display:block; color:#666; text-decoration:none; height: 25px; line-height: 25px;}
ul.menu li {position:relative; float:left; margin-right:2px;line-height:35px;}
ul.menu ul {position:absolute; top:35px; left:0; background:#fff url('bg.gif') repeat-x; display:none;list-style:none;width:152px; }
ul.menu ul li {position:relative; border:1px solid #990000; border-bottom:none; border-top:none;width:150px; margin:0}
ul.menu ul li a {display:block; padding:3px 7px 5px; color:#666; height:22px; font-size:12px;}/*下级菜单样式*/
ul.menu ul li a:hover { color:#fff; background:#990000;}/*下级菜单鼠标滑过样式*/
ul.menu ul ul {left:150px; top:-1px;}
ul.menu .menulink {padding:5px 7px 7px; font-weight:bold; width:140px; color:#666;}
ul.menu .menulink:hover, ul.menu .menuhover { color:#990000;}
ul.menu .sub {background:url('arrow.gif') 100% 0px no-repeat; color:#666;}/*二级带箭头样式*/
ul.menu  a.sub{background:url('arrow.gif') 100% 0px no-repeat; color:#666; font-size:12px;}/*二级带箭头样式*/
ul.menu  a.sub:hover{background:#990000 url('arrow.gif') 100% 0px no-repeat; color:#fff;}/*二级带箭头样式*/

ul.menu .topline {border-top:1px solid #990000;}
ul.menu .bottomline {border-bottom:1px solid #990000;}

</style>
<script type="text/javascript">
var menu = function(){
 var t = 15, z = 50, s = 6, a;
 function sl(c, f){
  var h = c.offsetHeight;
  if ((h <= 0 && f != 1) || (h >= c.mh && f == 1)) {
   if (f == 1) {
    c.style.filter = '';
    c.style.opacity = 1;
    c.style.overflow = 'visible';
   }
   clearInterval(c.t);
   return
  }
  var d = (f == 1) ? Math.ceil((c.mh - h) / s) : Math.ceil(h / s), o = h / c.mh;
  c.style.opacity = o;
  c.style.filter = 'alpha(opacity=' + (o * 100) + ')';
  c.style.height = h + (d * f) + 'px';
 };
 function dd(n){
  this.h = [];//存取有子菜单的项目
  this.c = [];//存取子菜单
 };
 dd.prototype = {
  init: function(p, c){
   a = c;
   var that = this;
   var w = document.getElementById(p), s = w.getElementsByTagName('ul'), l = s.length/*二级菜单的个数*/, i = 0;
   for (i; i < l; i++) {
    var h = s[i].parentNode;
    this.h[i] = h;
    this.c[i] = s[i];
    /*
     * 重点就在这里,一点JS的语法技巧,通过闭包来实现对i(索引的传递)
     * 然后就是Javascript里比较奇怪的一点,必须在内部的函数之外声明that=this
     * 这样对象的作用域才可以保持,很奇怪,但是很有效
    */
    h.onmouseover = function(index){
     return function(){
      that.st(index, true);
     }
    }(i);
    h.onmouseout = function(index){
     return function(){
      that.st(index, false);
     }
    }(i);
   }
  },
  st: function(x, f){
   var c = this.c[x], h = this.h[x], p = h.getElementsByTagName('a')[0];
   if (c.t) {
    clearInterval(c.t);
   }
   c.style['overflow'] = 'hidden';
   if (f) {
    p.className += ' ' + a;
    if (!c.mh) {
     c.style.display = 'block';
     c.style.height = '';
     c.mh = c.offsetHeight;
     c.style.height = 0;
    }
    if (c.mh == c.offsetHeight) {
     c.style.overflow = 'visible';
    }
    else {
     c.style.zIndex = z;
     z++;
     c.t = setInterval(function(){
      sl(c, 1)
     }, t);
    }
   }
   else {
    p.className = p.className.replace(a, '');
    c.t = setInterval(function(){
     sl(c, -1)
    }, t);
   }
  }
 };
 return {
  dd: dd
 };
}();
</script>
</head>
<body>
<!--把下面代码加到<body>与</body>之间-->
<div>
<ul class="menu" id="menu">
 <li><a href="#" class="menulink">Dropdown One</a>
  <ul>
   <li class="topline"><a href="#">Navigation Item 1</a></li>
   <li>
    <a href="#" class="sub">Navigation Item 2</a>
    <ul>
     <li class="topline"><a href="#">Navigation Item 1</a></li>
     <li><a href="#">Navigation Item 2</a></li>
     <li><a href="#">Navigation Item 3</a></li>
     <li><a href="#">Navigation Item 4</a></li>
     <li class="bottomline"><a href="#">Navigation Item 5</a></li>
    </ul>
   </li>
   <li>
    <a href="#" class="sub">Navigation Item 3</a>
    <ul>
     <li class="topline"><a href="#">Navigation Item 1</a></li>
     <li><a href="#">Navigation Item 2</a></li>
     <li>
      <a href="#" class="sub">Navigation Item 3</a>
      <ul>
       <li class="topline"><a href="#">Navigation Item 1</a></li>
       <li><a href="#">Navigation Item 2</a></li>
       <li><a href="#">Navigation Item 3</a></li>
       <li><a href="#">Navigation Item 4</a></li>
       <li><a href="#">Navigation Item 5</a></li>
       <li class="bottomline"><a href="#">Navigation Item 6</a></li>
      </ul>
     </li>
     <li class="bottomline"><a href="#">Navigation Item 4</a></li>
    </ul>
   </li>
   <li><a href="#">Navigation Item 4</a></li>
   <li class="bottomline"><a href="#">Navigation Item 5</a></li>
  </ul>
 </li>
 <li><a href="#" class="menulink">Non-Dropdown</a></li>
 <li>
  <a href="#" class="menulink">Dropdown Two</a>
  <ul>
   <li class="topline"><a href="#">Navigation Item 1</a></li>
   <li class="bottomline">
    <a href="#" class="sub">Navigation Item 2</a>
    <ul>
     <li class="topline"><a href="#">Navigation Item 1</a></li>
     <li><a href="#">Navigation Item 2</a></li>
     <li class="bottomline"><a href="#">Navigation Item 3</a></li>
    </ul>
   </li>
  </ul>
 </li>
 <li>
  <a href="#" class="menulink">Dropdown Three</a>
  <ul>
   <li class="topline"><a href="#">Navigation Item 1</a></li>
   <li><a href="#">Navigation Item 2</a></li>
   <li><a href="#">Navigation Item 3</a></li>
   <li><a href="#">Navigation Item 4</a></li>
   <li><a href="#">Navigation Item 5</a></li>
   <li>
    <a href="#" class="sub">Navigation Item 6</a>
    <ul>
     <li class="topline"><a href="#">Navigation Item 1</a></li>
     <li class="bottomline"><a href="#">Navigation Item 2</a></li>
    </ul>
   </li>
   <li><a href="#">Navigation Item 7</a></li>
   <li><a href="#" class="sub">Navigation Item 8</a>
        <ul>
       <li class="topline"><a href="#">Navigation Item 1</a></li>
       <li><a href="#" class="sub">Navigation Item 2</a>
        <ul>
                <li class="topline"><a href="#">Navigation Item 1</a></li>
                <li class="bottomline"><a href="#">Navigation Item 2</a></li>
                 </ul>
       
       </li>
       <li><a href="#">Navigation Item 3</a></li>
       <li><a href="#">Navigation Item 4</a></li>
       <li><a href="#">Navigation Item 5</a></li>
       <li class="bottomline"><a href="#">Navigation Item 6</a></li>
      </ul>
   </li>
   <li><a href="#">Navigation Item 9</a></li>
   <li class="bottomline"><a href="#">Navigation Item 10</a></li>
  </ul>
 </li>
</ul>
<div>
<script type="text/javascript">
 var menu=new menu.dd();
 menu.init("menu","menuhover");
</script>

<div style="width:900px;height:500px; background:#CC9900;">

</div>

</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值