js实现简洁大方的二级下拉菜单效果代码


Posted in Javascript onSeptember 01, 2015

本文实例讲述了js实现简洁大方的二级下拉菜单效果代码。分享给大家供大家参考。具体如下:

这是一款简洁大方的二级下拉菜单,菜单的颜色自己根据需要重新定义吧,这里仅给大家提供一种制作二级菜单的思路,整体效果看上去相当实用,下拉导航菜单也是大家比较常用的。

运行效果截图如下:

js实现简洁大方的二级下拉菜单效果代码

在线演示地址如下:

具体代码如下:

<!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>简洁大方的二级下拉菜单</title>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<style type="text/css">
*{margin:0;padding:0;font-style:normal;font-family:宋体;}
body{text-align:center;font-size:14px;}
#content{margin:0 auto;width:600px;}
#content #nav{background:#006400;height:32px;margin-top:10px;}
#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;background:#006400;float:left;height:0;overflow:hidden;}
#content #nav li .a{text-decoration:none;color:#00CD00;line-height:32px;display:block;border-right:1px solid #009800;}
#nav div a{text-decoration:none;color:#00CD00;line-height:26px;display:block;}
#nav div a:hover{background:#005400;}
</style>
</head>
<body>
<div id="content">
 <div id="nav">
  <ul id="supnav">
   <li><a href="#" class="a">菜单项1</a>
    <div>
     <a href="#">菜单测试1</a>
     <a href="#">菜单测试1</a>
     <a href="#">菜单测试1</a>
    </div>
   </li>
   <li><a href="#" class="a">菜单项2</a>
    <div>
     <a href="#">菜单测试2</a>
     <a href="#">菜单测试2</a>
     <a href="#">菜单测试2</a>
    </div>
   </li>
   <li><a href="#" class="a">菜单项3</a>
    <div>
     <a href="#">菜单测试3</a>
     <a href="#">菜单测试3</a>
     <a href="#">菜单测试3</a>
     <a href="#">菜单测试3</a>
     <a href="#">菜单测试3</a>
    </div>
   </li>
   <li><a href="#" class="a">菜单项4</a>
    <div>
     <a href="#">菜单测试4</a>
     <a href="#">菜单测试4</a>
     <a href="#">菜单测试4</a>
    </div>
   </li>
   <li><a href="#" class="a">菜单项5</a>
    <div>
     <a href="#">菜单测试5</a>
     <a href="#">菜单测试5</a>
     <a href="#">菜单测试5</a>
     <a href="#">菜单测试5</a>
    </div>
   </li>
   <li><a href="#" class="a">菜单项6</a>
    <div>
     <a href="#">菜单测试6</a>
     <a href="#">菜单测试6</a>
     <a href="#">菜单测试6</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)/8;
 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>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
用JAVASCRIPT如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
Apr 20 Javascript
jquery的$(document).ready()和onload的加载顺序
May 26 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
Jul 10 Javascript
jQuery关于导航条背景切换效果实现示例
Sep 04 Javascript
js基础之DOM中document对象的常用属性方法详解
Oct 28 Javascript
利用D3.js实现最简单的柱状图示例代码
Dec 09 Javascript
EasyUI学习之Combobox级联下拉列表(2)
Dec 29 Javascript
js实现瀑布流效果(自动生成新的内容)
Mar 16 Javascript
关于vue.extend和vue.component的区别浅析
Aug 16 Javascript
React组件重构之嵌套+继承及高阶组件详解
Jul 19 Javascript
JavaScript惰性求值的一种实现方法示例
Jan 11 Javascript
Vue filter 过滤器、以及在table中的使用介绍
Sep 07 Javascript
js实现点击向下展开的下拉菜单效果代码
Sep 01 #Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
Sep 01 #Javascript
js实现具有高亮显示效果的多级菜单代码
Sep 01 #Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
Sep 01 #Javascript
JS实现黑客帝国文字下落效果
Sep 01 #Javascript
JavaScript中this详解
Sep 01 #Javascript
基于JavaScript制作霓虹灯文字 代码 特效
Sep 01 #Javascript
You might like
PHP的面试题集,附我的答案和分析(一)
2006/11/19 PHP
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
php实现加减法验证码代码
2014/02/14 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
Laravel学习教程之从入口到输出过程详解
2017/08/27 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
JavaScript Undefined,Null类型和NaN值区别
2008/10/22 Javascript
document.getElementById为空或不是对象的解决方法
2010/01/24 Javascript
菜鸟学习JavaScript小实验之函数引用
2010/11/17 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
JavaScript比较两个对象是否相等的方法
2015/02/06 Javascript
jQuery实现图片加载完成后改变图片大小的方法
2016/03/29 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
AngulaJS路由 ui-router 传参实例
2017/04/28 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
详解如何实现一个简单的Node.js脚手架
2017/12/04 Javascript
详解vue组件基础
2018/05/04 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
JavaScript Window窗口对象属性和使用方法
2020/01/19 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
用Python编写一个简单的FUSE文件系统的教程
2015/04/02 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
2018/10/09 Python
对pandas的行列名更改与数据选择详解
2018/11/12 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
检测tensorflow是否使用gpu进行计算的方式
2020/02/03 Python
pandas处理csv文件的方法步骤
2020/10/16 Python
用html5的canvas画布绘制贝塞尔曲线完整代码
2013/08/14 HTML / CSS
2014年保管员工作总结
2014/11/18 职场文书
学生个人评语大全
2015/01/04 职场文书
自愿离婚协议书2015
2015/01/26 职场文书
检讨书范文300字
2015/01/28 职场文书
商业计划书范文
2019/04/24 职场文书
祝福语集锦:给妹妹结婚的祝福语
2019/12/18 职场文书
python中 Flask Web 表单的使用方法
2022/05/20 Python