<!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>