利用jQuery设计横/纵向菜单

在网页中,菜单扮演着“指路者”的角色。怎样设计一个人性化的菜单呢。以下小编带着大家一起做。

效果图:

设计历程:

1.首先利用html中的<ul>和<li>标签进行嵌套,搭起一个总体的框架。例如以下图所看到的:

Html代码:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>横纵向菜单</title>
<link rel="stylesheet" type="text/css" href="css/menu.css"/>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/menu.js"></script>
</head>

<body>
<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>
</body>
</html>

(这是展示的是纵向菜单的代码,横向代码亦是如此,仅仅需更改一下class的名字,以便在设计样式时差别开。

2.上面的两幅图形成鲜明的对照,用户理所应当选择前者了。接下来我们就给框架“穿”件衣服。

CSS代码:

ul,li{
	/*清除ul和li前默认的小圆点*/
	list-style:none;
	}
ul{
	/*清除子菜单的缩进值*/
	padding:0;
	margin:0;
	}
.main,.hmain{
/*	菜单项的背景是一小块图片平移反复构成的,看起来有立体感
*/	background-image:url(../image/title.gif);
	background-repeat:repeat-x;
	width:120px;
	}
li{
/*	设置背景颜色,菜单项的背景图片覆盖背景颜色
*/	background-color:#CCC;
	}
a{
	/*取消全部链接的下划线*/
	text-decoration:none;
/*	让a充满整个区域。鼠标点击的那行一直是手形
*/	display:block;
	display:inline-block;

	width:100px;
	padding-left:20px;
	padding-top:3px;
	padding-bottom:3px;
	}
.main a,.hmain a{
/*	设置菜单项的字体颜色
*/	color:white;
/*在菜单项前加入向右指的图片
*/	background-image:url(../image/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;
	}*/

注:“main”—纵向   “hmain”—横向

3.菜单的表面工作完毕了,它不是摆在那里给人看的,须要和用户进行交互。实现一些动态效果。当我们点击菜单项时。首先鼠标箭头变为手形。点击后以下隐藏的子菜单项会显示出来。同一时候指向右的箭头变为指向下方。

再点击菜单项时,子菜单项隐藏,同一时候更换箭头图片。

javascript就是赋予网页生命力的大神,而jQuery则是一个兼容多浏览器的javascript库。有了它使得javascript写得更少,做得很多其它。引用了jQuery库后,编写例如以下代码:

javascript代码:

$(document).ready(function() {
    //纵向菜单
	$(".main > a").click(function(){
		var ulNode=$(this).next("ul");
		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(‘image/expanded.gif‘)");
	    }else{
		   mainNode.css("background-image","url(‘image/collapsed.gif‘)");
		}
	}
}

至此,两个菜单设计完毕了。是不是非常有成就感呢!

纵观全局。html是躯体。css是衣服,js则是灵魂。三者的配合。构成了一个个鲜活灵动的网页。记得最初照着视频敲牛腩新闻公布系统的时候。认为B/S开发就是杂七杂八的东西往一块儿拼凑。

随着后来的“盲人摸象”,如今有了逐渐清晰的认识。

时间: 2024-08-09 02:20:30

利用jQuery设计横/纵向菜单的相关文章

小谷实战Jquery(三)--横向纵向菜单

每天一个实例看来速率有点低了,今天要多做一点.好了,这次实现的是一个简单的菜单,Web项目中常见的菜单有两种:纵向和横向.从纵向说起,看一下最初的代码. html代码实现最基本的菜单与子菜单 <span style="font-size:18px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD

Jquery实战——横纵向的菜单

横纵向的菜单效果,点击纵向菜单显示其子菜单.鼠标指向横菜单的时候,显示其子菜单,鼠标离开,子菜单隐藏. HTML代码: <span style="font-size:18px;"><!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content=&

jQuery实现横向纵向下拉菜单

学习javascript中有提到构建自己的javascript库,比如jQuery,这些库中包含自己常用的方便的小函数,这些函数可以让自己的代码更加清晰易懂,而且当别人调用时也很容易理解,当然编写库时需要注意一些问题,比如大小写.括号引号.换行等,这些为jQuery学习提供了一些基础,jQuery的学习主要通过几个实例来了解jQuery的应用,通过查看API运用特定方法实现自己的效果,它让网页动了起来.通过代码如何实现一个横向和纵向下拉菜单的效果. 首先在HTML中通过ul和li表示页面中的菜单

利用jQuery实现垂直菜单和水平菜单效果

1 利用jQuery实现垂直菜单 1.1 创建VerticalMenu.html文件,内容如下: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <link href="vertical.css" rel="stylesheet"> <script src="jquery-1

jQuery打造动态下滑菜单

作者:漫凯维奇      来源:[教程]jQuery打造动态下滑菜单 Tip:这只是一个转载,源代码可以在上面的来源博文中下载 此教程将分步讲解如何使用JQuery和CSS打造一个炫酷动感菜单.效果如下: 效果实现步骤如下: 1.HTML结构的实现,跟平常的菜单代码没有什么区别: <div id="menu" class="menu"> <ul> <li><a href="javascript:;">

基于MVC+EasyUI的Web开发框架经验总结(1)-利用jQuery Tags Input 插件显示选择记录

最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重构完善过程中,很多细节花费不少时间进行研究和提炼,一步步走过来,也积累了不少经验,本系列将主要介绍我在进一步完善我的Web框架基础上积累的经验进行分享,本随笔主要介绍利用jQuery Tags Input 插件显示选择记录. 我在利用jQuery Tags Input 插件之前,一直想找一个合适的J

利用 jQuery UI 和 Ajax 创建可定制的 Web 界面

如今,网站比以往更具可定制性,允许用户更改其空间,根据自己的喜好对其进行个性化.个性化的主页或仪表板页面(例如 iGoogle.MyYahoo! 和 MyAOL)日渐普及,大多数 Web 应用程序内甚至也整合了类似的功能.jQuery 库简化了此类复杂 JavaScript 交互的编写,随着 jQuery UI 的引入,这项功能得到了进一步的简化,该库以易于访问的 jQuery 插件的形式提供了常用用户界面类型. 本文介绍了如何利用 Ajax 和 jQuery UI 创建具有各种定制功能的高度可

基于MVC4+EasyUI的Web开发框架经验总结(1)-利用jQuery Tags Input 插件显示选择记录

最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重构完善过程中,很多细节花费不少时间进行研究和提炼,一步步走过来,也积累了不少经验,本系列将主要介绍我在进一步完善我的Web框架基础上积累的经验进行分享,本随笔主要介绍利用jQuery Tags Input 插件显示选择记录. 我在利用jQuery Tags Input 插件之前,一直想找一个合适的J

利用CSS制作下拉菜单

利用CSS制作下拉菜单 1.定义一个div,给div一个id或class,给div一个样式. eg:<div id="menu"></div> /*css #menu{ width:1024px; //给div定义一个宽度 height:40px; //给div定义一个高度 margin:0 auto; //让div居中显示 background-color:#eee; //给div一个背景颜色 } */ 2.制作下拉菜单所需的无序列表(ul). eg:<