<!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" lang="zh-cn">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta http-equiv="Content-Language" content="gb2312" />
<meta name="author" content="RainoXu" />
<title></title>
</head>
<body>
<style type ="text/css">
/* <![CDATA[ */
body{
padding:0;
margin:0;
text-align:center;
}
#nav{
padding:0;
margin:0 auto;
width:900px;
height:29px;
list-style:none;
position:relative;
}
#nav li{
float:left;
text-align:center;
padding-left:4px;
/*IE6中讨厌的bug,在IE7和FireFox中不设宽度能自动适应内部元素的宽度,IE6不行=.=!!*/
+width:72px;
}
#nav li.highlight{
background:url("http://www.rainoina.com/raino/UserFiles/image/douban_nav/nav_bg_l.jpg") no-repeat left top;
}
#nav span a{
text-decoration:none;
font:14px tahoma;
display:block;
padding-right:9px;
padding-left:5px;
height:29px;
line-height:29px;
}
#nav li.highlight a{
background:url("http://www.rainoina.com/raino/UserFiles/image/douban_nav/nav_bg_r.jpg") no-repeat right top;
}
.subNav{
padding:0;
list-style:none;
width:900px;
height:30px;
background:#EEF9EB;
border-top:#DCF5D5;
display:none;
position:absolute;
left:0;
+left:-40px;
}
.highlight .subNav{
display:block;
}
.subNav li{
height:30px;
line-height:30px;
}
.subNav a{
text-decoration:none;
font:12px tahoma;
}
/* ]]> */
</style>
<ul id="nav">
<li>
<span><a href="###">菜单一</a></span>
<ul class="subNav">
<li><a href="###">1子菜单一</a></li>
<li><a href="###">子菜单二</a></li>
<li><a href="###">子菜单三</a></li>
<li><a href="###">子菜单四</a></li>
</ul>
</li>
<li>
<span><a href="###">菜单二</a></span>
<ul class="subNav">
<li><a href="###">2子菜单一</a></li>
<li><a href="###">子菜单二</a></li>
<li><a href="###">子菜单三</a></li>
<li><a href="###">子菜单四</a></li>
</ul>
</li>
<li>
<span><a href="###">菜单三</a></span>
<ul class="subNav">
<li><a href="###">3子菜单一</a></li>
<li><a href="###">子菜单二</a></li>
<li><a href="###">子菜单三</a></li>
<li><a href="###">子菜单四</a></li>
</ul>
</li>
<li>
<span><a href="###">菜单四</a></span>
<ul class="subNav">
<li><a href="###">4子菜单一</a></li>
<li><a href="###">子菜单二</a></li>
<li><a href="###">子菜单三</a></li>
<li><a href="###">子菜单四</a></li>
</ul>
</li>
</ul>
<script type="text/javascript">
//<![CDATA[
//定义一个控制NAV的类
function navSwap(navId){
this.obj=document.getElementById(navId);
this.subElement=[];
//把#navId的LI子节点(仅仅是子节点,不包括孙子节点)推入栈中
for (var i=0;i<this.obj.childNodes.length;i++){
if (this.obj.childNodes[i].nodeType==1){
this.subElement.push(this.obj.childNodes[i]);
}
}
if (this.subElement.length>0){
//首先将第一个标签选项高亮
this.subElement[0].className="highlight";
for (var i=0;i<this.subElement.length;i++){
//得到各个<span/>中的<a/>节点
var tagNode=this.subElement[i].getElementsByTagName("span")[0].getElementsByTagName("a")[0];
//绑定事件
tagNode.onmouseover=function(){
//得到#navId下的所有li,这里得到的也有来自subNav下的li,但这不影响后面的操作
var allSubTag=document.getElementById(navId).getElementsByTagName("li");
//找到class="highlight"的li,取消它的高亮,一旦找到就跳出循环
for (var j=0;j<allSubTag.length ;j++){
if (allSubTag[j].className=="highlight"){
allSubTag[j].className="";
break;
}
}
//这里的this指向的是onmouseover时触发者<span/>中的<a/>标签,而不是类的内部成员。
this.parentNode.parentNode.className="highlight";
}
}
}
}
//生成一个控制的对象
new navSwap("nav");
//]]>
</script>
</body>
</html>
分享到:
相关推荐
总的来说,选择哪种JavaScript菜单技术取决于项目需求、性能考虑以及开发者的熟练程度。在实际应用中,开发者可能会根据具体情况组合使用这些技术,以达到最佳的用户体验和性能效果。在学习和实践中,理解每种技术的...
"35个JavaScript菜单菜单样式"是一个资源包,提供了多种设计独特的菜单样式,旨在帮助开发者提升网站或应用的用户体验。 在网页设计中,菜单是一个重要的导航元素,它允许用户轻松地浏览网站的不同部分。JavaScript...
总的来说,这个“js 菜单大全”集合是一个宝贵的资源,无论你是初学者还是经验丰富的开发者,都可以从中学习到JavaScript菜单设计的各种技巧和最佳实践。通过深入理解和实践这些示例,你可以提升自己的前端开发技能...
js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js 菜单js ...
"Basic"可能是一个基础的JavaScript菜单,展示了最简单的下拉或弹出菜单的基本结构。这包括如何使用JavaScript操作DOM元素(如添加和删除class,显示和隐藏元素)以及响应用户事件。 4. **Drop Shadow** "Drop ...
总的来说,"仿淘宝商城左侧JS菜单"项目是学习和实践前端开发技能的好案例,涵盖了CSS布局、JavaScript交互以及现代WEB开发中的诸多技巧。通过这样的实践,开发者可以提高自己在网站设计和用户体验方面的专业能力。
本文将深入探讨"Js右键菜单,js菜单,漂亮的Js右键导航,好用的Js右键菜单"这一主题,帮助开发者了解如何利用JavaScript实现高效、美观的右键菜单功能。 一、JavaScript右键菜单的基本原理 在网页上,右键点击事件...
div+css+js菜单 div+css+js菜单 div+css+js菜单 div+css+js菜单 div+css+js菜单 div+css+js菜单 div+css+js菜单 div+css+js菜单 div+css+js菜单
通过分析和调试这个文件,我们可以更深入地了解如何在JSP中构建仿Outlook的JavaScript菜单。 总的来说,"jsp的仿outlook的js菜单"是一个结合了JavaScript、JSP和CSS技术的项目,它展示了如何通过这些技术来创建交互...
"CSS+JavaScript 菜单"就是这样一个技术组合,用于构建动态、响应式且功能丰富的导航元素。下面将详细讲解CSS和JavaScript在创建这种菜单中的作用,以及如何将两者结合使用。 首先,CSS(Cascading Style Sheets)...
JavaScript(Js)是一种广泛应用于网页和网络应用的脚本语言,它主要负责处理客户端的交互逻辑,让网页更具动态性和用户友好性。在网页设计中,菜单是必不可少的一部分,它帮助用户快速导航到不同的页面或功能。而...
首先,我们关注的是JS(JavaScript)在创建动态导航菜单中的作用。JavaScript是一种强大的客户端脚本语言,它允许开发者为网页添加交互性,使得导航菜单不仅美观,而且具有响应性和自定义功能。JS菜单通常包括下拉...
JavaScript菜单树是一种基于JavaScript编程语言构建的动态导航菜单,它以树形结构展示数据,用户可以通过展开和折叠节点来查看或隐藏子级菜单。这样的设计使得大量层级关系的数据变得易于理解和操作,尤其适用于网站...
该压缩包文件提供的“菜单js模板”包含样式代码和示例,意味着它不仅包含了JavaScript逻辑,还可能包括CSS样式,用于控制菜单的外观。通过引入这个模板,开发者无需从零开始编写菜单代码,可以节省大量时间和精力,...
在JavaScript的世界里,创建动态和交互式的用户界面是常见的需求,而“js菜单 鼠标经过折叠/滑动菜单”就是这样的一个功能。这种菜单设计可以极大地提升网站的用户体验,因为它允许用户通过简单地将鼠标悬停在菜单项...
总的来说,"js菜单.rar"提供的资源是一个实用的JavaScript菜单解决方案,涵盖了事件处理、DOM操作、数据持久化和动态效果等多个JavaScript核心概念。无论是初学者还是经验丰富的开发者,都能从中学习到关于...
JavaScript(简称JS)是一种轻量级的解释型编程...以上就是关于"js菜单(sd-menu)"的一些关键知识点,涵盖了JavaScript菜单实现的基本原理和常见实践。掌握这些技能,开发者可以创建出符合各种需求的交互式菜单系统。
资源名:asp.net动态js菜单源码(动态菜单+静态菜单+数据库文件) 资源类型:程序源代码 源码说明: 1.Default.aspx页面是框架,需要静态菜单显示或是动态菜单显示,设置起始页。Login页面或LoginStatic页面。 2.运行 ...
在这个"js菜单[简单实用]"的项目中,我们可以看到一个基本的JavaScript菜单实现,适用于那些希望用JS来控制动态菜单的开发者。 首先,"index.html"是网页的主文件,通常包含HTML结构以及内联或外部引用的CSS和JS...
JavaScript(简称JS)和jQuery是Web开发中用于创建交互式用户界面的重要工具,尤其是在构建菜单系统时。在本文中,我们将深入探讨如何使用这两种技术来创建高效、灵活且跨浏览器的横纵向菜单。 首先,JavaScript是...