您的位置:首页 > Web前端 > JavaScript

js二级菜单的制作(有动画)

2015-09-09 09:59 507 查看
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>导航栏</title>
<style type="text/css">
* { margin: 0; padding: 0; font-style: normal;}
body { text-align: center; font-size: 12px; }
#content { margin: 0 auto; width: 600px; }
#content #nav { height: 32px; margin-top: 60px; background-color: #464749; }
#content #nav ul { list-style: none; }
#content #nav ul li { float: left; width: 100px; line-height: 32px; position: relative; }
#nav div { width: 100px; position: absolute; left: 0px; padding-bottom: 0px; float: left; height: 0; overflow: hidden; background-color: #23abf1; }
#content #nav li .a { text-decoration: none; color: #FFFFFF; line-height: 32px; display: block; border-right-width: 1px; border-right-style: solid; border-right-color: #393A3C; }
#nav div a { text-decoration: none; color: #FFFFFF; line-height: 26px; display: block; }
#nav div a:hover { background-color: #0C7DBA; }
</style>
</head>
<body>
<div id="content">
<div id="nav">
<ul id="supnav">
<li><a href="#" class="a">导航栏1</a>
<div>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
</div>
</li>
<li><a href="#" class="a">导航栏2</a>
<div>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
</div>
</li>
<li><a href="#" class="a">导航栏3</a>
<div>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
</div>
</li>
<li><a href="#" class="a">导航栏4</a>
<div>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
</div>
</li>
<li><a href="#" class="a">导航栏5</a>
<div>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
</div>
</li>
<li><a href="#" class="a">导航栏6</a>
<div>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="#">菜单栏</a>
<a href="javascript:void(0)">菜单栏</a>
</div>
</li>
</ul>
</div>
</div>
<script type="text/javascript">
var supnav = document.getElementById("supnav");
var nav = document.getElementById("nav");
var btns = document.getElementsByTagName("li");
var subnavs = nav.getElementsByTagName("div");
var paddingbottom = 20;
var defaultHeight = 0;
function drop(obj, ivalue) {
var a = obj.offsetHeight;
var speed = (ivalue - obj.offsetHeight) / 10;
a += Math.floor(speed);
obj.style.height = a + "px";
}
window.onload = function() {
for (var i = 0; i < btns.length; i++) {
btns[i].index = i;
btns[i].onmouseover = function() {
var osubnav = subnavs[this.index];
var sublinks = osubnav.getElementsByTagName("a");
if (osubnav.firstChild.tagName == undefined) {
var itarheight = parseInt(osubnav.childNodes[1].offsetHeight) * sublinks.length + paddingbottom;
} else {
var itarheight = parseInt(osubnav.firstChild.offsetHeight) * sublinks.length + paddingbottom;
}
clearInterval(this.itimer);
this.itimer = setInterval(function() {
drop(osubnav, itarheight);
},
30);
}
btns[i].onmouseout = function() {
var osubnav = subnavs[this.index];
clearInterval(this.itimer);
this.itimer = setInterval(function() {
drop(osubnav, defaultHeight);
},
30);
}
}
}
</script>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: