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

效果图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ1lMX2hhcHB5Z2lybA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

设计历程:

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开发就是杂七杂八的东西往一块儿拼凑。

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

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

  1. Jquery实战——横纵向的菜单

    横纵向的菜单效果,点击纵向菜单显示其子菜单.鼠标指向横菜单的时候.显示其子菜单,鼠标离开,子菜单隐藏. HTML代码: <span style="font-size:18px;&quo ...

  2. 基于MVC4+EasyUI的Web开发框架经验总结(12)--利用Jquery处理数据交互的几种方式

    在基于MVC4+EasyUI的Web开发框架里面,大量采用了Jquery的方法,对数据进行请求或者提交,方便页面和服务器后端进行数据的交互处理.本文主要介绍利用Jquery处理数据交互的几种方式,包括 ...

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

    最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开发框架保持一致,而在Web上,我主要采用EasyUI的前端界面处理技术,走MVC的技术路线,在重 ...

  4. 【jQuery Demo】jQuery打造动态下滑菜单

    作者:漫凯维奇      来源:[教程]jQuery打造动态下滑菜单 Tip:这只是一个转载,源代码可以在上面的来源博文中下载 此教程将分步讲解如何使用JQuery和CSS打造一个炫酷动感菜单.效果如 ...

  5. 我收集到的最好的jQuery和CSS3导航菜单

    jQuery和CSS3导航菜单在网页设计和开发的重要组成部分之一.利用jQuery+CSS3实现可以做出拥有各种动画效果的漂亮菜单.在这里,我们收集了一些最好的jQuery+CSS3实现的导航菜单. ...

  6. 一款效果精致的 jQuery 多层滑出菜单插件

    想要以用户友好的方式呈现多级菜单是件不容易的事情,而且还要跨浏览器兼容就更难了.Multi-Level Push Menu 这款 jQuery 插件提供了呈现这种菜单的解决方案,能够让你无限制的展示菜 ...

  7. jQuery插件——多级联动菜单

    jQuery插件——多级联动菜单 引言 开发中,有好多地方用到联动菜单,以前每次遇到联动菜单的时候都去重新写,代码重用率很低,前几天又遇到联动菜单的问题,总结了下,发现可以开发一个联动菜单的功能,以后 ...

  8. 160620、利用 jQuery UI 和 Ajax 创建可定制的 Web 界面

    如今,网站比以往更具可定制性,允许用户更改其空间,根据自己的喜好对其进行个性化.个性化的主页或仪表板页面(例如 iGoogle.MyYahoo! 和 MyAOL)日渐普及,大多数 Web 应用程序内甚 ...

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

    http://www.cnblogs.com/wuhuacong/p/3667703.html 最近花了不少时间在重构和进一步提炼我的Web开发框架上,力求在用户体验和界面设计方面,和Winform开 ...

随机推荐

  1. $stylus美化$

    一直在用洛谷 当然不一定是洛谷 其他的网站也可以用 比如说codeforces 还是决定要美化一波 首先去找一个插件 叫做 stylus stylus下载的很多 我不想过多说明. Google和QQ浏 ...

  2. 【转】mysql的数据类型

    转自:http://mrxiong.blog.51cto.com/287318/1651098 一.数值类型 Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER,SMALL ...

  3. SublimeText学习(二)-基本操作

    1.查看已安装的插件 看到已经安装的插件,看到了在上一篇中安装的Emmet 2.设置主题与字体 方法一: 方法二: 工具栏中 [Preference-浏览程序包]找到[Default文件夹]-用Sub ...

  4. Select2插件ajax方式加载数据并刷新页面数据回显

    今天在优化项目当中,有个要在下拉框中搜索数据的需求:最后选择使用selec2进行开发: 官网:http://select2.github.io/ 演示: 准备工作: 文件需要引入select2.ful ...

  5. 删除过期备份报错RMAN-06207 RMAN-06208解决方案

    RMAN备份日志中出现了警告 日志文件目录如下: [root@erpdbs rmanback]# ll total 88 -rw-r--r-- 1 oraprod dba 81011 Sep 7 22 ...

  6. jQuery——jQuery选择器

    基本选择器 # Id选择器 $(“#btnShow”)选择id为btnShow的一个元素 . 类选择器 $(“.liItem”)选择含有类liItem的所有元素 ele 标签选择器 $(“li”)选择 ...

  7. 海盗(Haidao)网店系统最新官方版

    产品介绍:经过开发团队半个月的努力,Haidao v1.1 beta版终于和大家见面了,在这个版本中我们重点系统目录结构和整体框架进行了改进,同时新增加了多个功能模块. 四大功能模块意在打造最灵活的电 ...

  8. Operation Queues 面向对象的封装

    Operation Queues An operation queue is the Cocoa equivalent of a concurrent dispatch queue and is im ...

  9. [JS]window.location获取url各项参数详解

    window.location方法后还还可以带href,search等参数,下面我们来看看获取url各项参数的办法. URL即:统一资源定位符 (Uniform Resource Locator, U ...

  10. (C/C++学习)13.C语言字符串处理函数(一)

    说明:字符串处理的函数很多,本文将例举经常遇到的一些函数加以说明. 一.字符串的输入输出 头文件:<stdio.h> 1.利用标准输出函数 printf() 来输出,将格式设置为 s% . ...