页面代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>JQuery实战-菜单效果</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link type="text/css" rel="stylesheet" href="css/menu.css" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/menu.js"></script>
</head>
<body>
<ul>
<li class="main">
<a href="#">菜单项1</a>
<ul>
<li>
<a href="#">子菜单项11</a>
</li>
<li>
<a href="#">子菜单项12</a>
</li>
</ul>
</li>
<li class="main">
<a href="#">菜单项2</a>
<ul>
<li>
<a href="#">子菜单项21</a>
</li>
<li>
<a href="#">子菜单项22</a>
</li>
</ul>
</li>
<li class="main">
<a href="#">菜单项3</a>
<ul>
<li>
<a href="#">子菜单项31</a>
</li>
<li>
<a href="#">子菜单项32</a>
</li>
</ul>
</li>
</ul>
<br />
<br />
<br />
<ul>
<li class="hmain">
<a href="#">菜单项1</a>
<ul>
<li>
<a href="#">子菜单项11</a>
</li>
<li>
<a href="#">子菜单项12</a>
</li>
</ul>
</li>
<li class="hmain">
<a href="#">菜单项2</a>
<ul>
<li>
<a href="#">子菜单项21</a>
</li>
<li>
<a href="#">子菜单项22</a>
</li>
</ul>
</li>
<li class="hmain">
<a href="#">菜单项3</a>
<ul>
<li>
<a href="#">子菜单项31</a>
</li>
<li>
<a href="#">子菜单项32</a>
</li>
</ul>
</li>
</ul>
</body>
</html>
css代码
ul, li {
/*清除ul和li上默认的小圆点*/
list-style: none;
}
ul {
/*清除子菜单的缩进值*/
padding: 0;
margin: 0;
}
.main, .hmain {
background-image: url(../images/title.gif);
background-repeat: repeat-x;
width: 120px;
}
li {
background-color: #EEEEEE;
}
a {
/*取消所有的下划线*/
text-decoration: none;
padding-left: 20px;
display: block;
display: inline-block;
width: 100px;
padding-top: 3px;
padding-bottom: 3px;
}
.main a, .hmain a {
color: white;
background-image: url(../images/collapsed.gif);
background-repeat: no-repeat;
background-position: 3px center;
}
.main li a, .hmain li a {
color: black;
background-image: none;
}
.main ul, .hmain ul {
display: none;
}
.hmain {
float: left;
margin-right: 1px;
}
js代码
$(document).ready(function(){
//页面中的DOM已经装载完成时,执行的代码
$(".main > a").click(function(){
//找到主菜单项对应的子菜单项
var ulNode = $(this).next("ul");
/*
if (ulNode.css("display") == "none") {
ulNode.css("display","block");
} else {
ulNode.css("display","none");
}
*/
//ulNode.show("slow");//normal fast
//ulNode.hide();
//ulNode.toggle();
//
//ulNode.slideDown("slow");
//ulNode.slideUp;
ulNode.slideToggle();
changeIcon($(this));
});
$(".hmain").hover(function(){
$(this).children("ul").slideDown();
changeIcon($(this).children("a"));
},function(){
$(this).children("ul").slideUp();
changeIcon($(this).children("a"));
});
});
/**
* 修改主菜单的指示图标
*/
function changeIcon(mainNode) {
if (mainNode) {
if (mainNode.css("background-image").indexOf("collapsed.gif") >= 0) {
mainNode.css("background-image","url('images/expanded.gif')");
} else {
mainNode.css("background-image","url('images/collapsed.gif')");
}
}
}
js及其他开发知识
1.页面中的菜单项可以通过嵌套的ul和li来表示
2.菜单最外层为ul ,一层每个主菜单放在一个 li中,如果有子菜单,在这个主菜单的li中建立新的ul ,再依次嵌套即可构建多层的菜单。
3.浏览器中ul和li元素默认情况下文字前都有圆点标识符,li元素会有缩进。Opera浏览器
比较特殊,li的标识符和其他浏览器不同。
4.list-style属性值为none时,可以清除ul和li前面的小圆点
5.清除子菜单的缩进值,需要padding和margin都为0 ,其中IE6和IE7只有margin也为0的时候才可以清除缩进值
6.可以使用background-image来指定一个元素的背景图,如果背景图比元素的实际大小要小,那么背景图会自动在横向和纵向上重复显示,知道填满整个区域
7.可以使用bakcground-repeat来控制背景图的重复填充方式。
8.如果一个元素上同时定义了背景图和背景色,那么有背景图的地方是不会显示背景色的
9.text-decoration属性值为none时,可以取消文字上的下划线
10.background-position可以控制背景图的位置,属性值既可以用数值,也可以用center , left,top这些值来控制横向和纵向的位置。这个属性的两个值,第一个对应横向,第二个对应纵向
11.background-image的值为none表示没有背景图
12.background-repeat的值为no-repeat时,背景图不会在所在的区域中重复显示。
13.IE6以外的其他浏览器可以通过设定display的值为block来让a元素充满所在的区域。对于IE6 ,则需要设定display为inline-block ,同时设定a的宽度。
14.display的值为none可以用于隐藏元素。
15. .main a和.main > a的不同之处,前者选 择使用了.main的这个class的元素内部所有的 a节点,后者只选择.main的子节点中的a节点
16.show,hide方法可以用于显示或隐藏元素,没有参数时的效果和修改css的display属性效果一样。参数可以是单位为毫秒的数字,或者是’slow’,’normal’,’fast’这三个文字,都可以 来控制完成显示或隐藏需要的时间。注意这时动画效果时靠不断改变元素的宽度和高度来实现的。
17.toggle方法更为强大,可以省去我们判断元素是显示还是隐藏的状态,直接让显示的元素隐藏起来,隐藏的元素显示出来。参数使用方法和show ,hide相同。
18.slideDown ,slideUp可以实现向下或向上卷动的效果,实际上是通过指定时间内修改元素的高度来实现动画效果。需要注意的是这两个方法参数为空的情况和show ,hide不
同。
19.slideToggle和toggle达到的效果类似
20.DOCTYPE对于JQuery中的动画是有影响的。没有DOCTYPE定义时,在IE中,JQuery的动画会出现闪烁的糟糕效果。
21.float的值是left ,可以使原本各自位于一行的元素全部在一行中向左浮动。
22.可以给多个选择器定义同样的样式,选择器之间用,分割。同样对于JQuery的$方法,也可以传入过个选择器。
分享到:
相关推荐
本教程将围绕“jQuery 横向纵向菜单”这一主题,详细介绍如何使用 jQuery 实现这种功能,并提供源代码供参考。 首先,让我们了解什么是横向和纵向菜单。横向菜单通常位于网页顶部,选项水平排列,而纵向菜单则常...
JQuery实战:横向纵向菜单 JQuery实战:横向纵向菜单
提供的"JQuery实战第三讲:横向纵向菜单.avi"视频教程很可能会演示以上所述的概念和技巧,包括HTML结构、CSS样式以及JQuery脚本编写。观看此视频,可以帮助你更好地理解并实际操作这些技术。 总之,掌握JQuery创建...
在这个"横向纵向菜单"的jQuery实例中,我们将学习如何利用jQuery的强大功能创建动态、响应式的菜单系统。 1. **基础结构**: - 首先,我们需要HTML结构来定义菜单的基础布局。横向菜单通常由`<ul>`和`<li>`元素...
在本文中,我们将深入探讨如何使用Jquery实现一个高效、美观的横向纵向菜单。这个实例展示了Jquery的强大功能,以及如何结合JavaScript(JS)来创建交互式的网页元素,提升用户体验。 首先,我们要理解Jquery是什么...
### JQuery实战:横向纵向菜单知识点总结 #### 一、页面结构设计与布局 - **页面中的菜单项构建**:页面中的菜单项可以通过嵌套的`<ul>`和`<li>`来表示。最外层使用`<ul>`,每个主菜单放在一个`<li>`中。如果某个...
通过以上步骤,你可以创建一个既美观又实用的JQuery横向纵向菜单。这样的菜单不仅提供了良好的视觉体验,还增强了用户的交互性。在实际应用中,你可以根据项目需求进行定制,如添加过渡效果、自定义动画速度或调整...
本教程将详细讲解如何使用JQuery创建横向和纵向菜单,让网站的导航更加直观且用户体验更佳。 首先,理解基本的HTML结构对于创建菜单至关重要。一个简单的横向菜单通常由`<ul>`(无序列表)和`<li>`(列表项)元素...
本主题将深入探讨jQuery在创建可编辑表格、实现横向和纵向菜单、构建标签页、设计级联下拉框以及窗口管理方面的应用。 首先,让我们谈谈jQuery可编辑表格。在网页上展示数据时,有时需要用户能够直接在表格中进行...
可以自动生产菜单样式,横向菜单和纵向菜单 都可以
在创建横向或纵向菜单时,CSS能够控制菜单项的排列方式(如水平或垂直),设置动画过渡效果,以及调整菜单的背景、字体、边框等视觉元素。通过CSS3,我们可以实现更复杂的效果,如渐变、阴影、动画等。 JQuery是一...
在这个项目中,"自己做的JQ菜单"指的是利用jQuery来创建一个既支持横向也支持纵向布局的交互式菜单。这种菜单在网站导航中非常常见,能够帮助用户方便地浏览和访问网站的不同部分。 首先,jQuery的选择器功能是创建...
本教程将详细讲解如何使用JS来仿制Flash的横向和纵向导航菜单效果,使网页的用户体验更加丰富和动态。 一、HTML结构基础 在创建任何特效之前,首先需要构建一个基本的HTML结构,为导航菜单提供框架。通常,我们可以...
本文将深入探讨如何利用jQuery实现一个功能丰富的横向纵向下拉菜单特效。 首先,jQuery是一个轻量级、高性能的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互。对于创建动态和交互式的网页,...
在这个主题中,我们将深入探讨如何利用 `DIV+CSS` 创建纵向横向下拉菜单以及如何用 `JavaScript` 实现图片文字的横向滚动。 首先,我们来关注 `DIV+CSS` 纵向横向下拉菜单。`DIV` 是HTML中的一个布局容器元素,通过...
本篇将详细介绍如何使用JavaScript实现一个三级横向导航菜单。 首先,我们需要理解基本的HTML结构。一个简单的导航菜单通常由`<ul>`(无序列表)和`<li>`(列表项)元素组成。对于多级菜单,我们可以嵌套`<ul>`和`...
这是一款基于CSS3的颜色渐变菜单导航,该菜单提供横向和纵向两种方式,当鼠标滑过菜单时,菜单项会出现不错的颜色渐变动画。 建议开发童鞋使用统一开发环境UDE来进行查看、调试、开发哦~~其属于MM应用引擎的应用...
本教程将深入讲解如何在RecyclerView中实现横向和纵向滑动,并实现滑动置顶以及跳转到特定项的功能。 首先,我们需要理解RecyclerView的基本结构。它包含一个Adapter,用于填充数据到视图,和一个LayoutManager,...
标题中的"基于jQuery的横向'纵向下拉菜单JS代码"是指一种使用JavaScript库jQuery实现的交互式导航菜单,它具备横向展示主菜单项,并在鼠标悬停时展开纵向子菜单的功能。这种菜单设计增强了用户体验,使得网站的导航...