JQuery实现绚丽的横向下拉菜单


Posted in Javascript onDecember 19, 2013

以前经常看见网站有菜单的显示,鼠标移上去就出现下拉的效果,很绚丽,经过看JQuery视频后,发现实现也挺容易的。
JQuery实现绚丽的横向下拉菜单 
Html中,通过<ul>和<li>标签将所需的元素写出来。 

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

最外围的<ul>中元素<li>即为菜单项1、菜单项2、菜单项3,下拉菜单分别在各主菜单之下,如果菜单最外层为ul,一层每个主菜单放在一个li中,如果有子菜单,在这个主菜单的li中建立新的ul,再依次嵌套即可构建多层的菜单。

CSS中

ul,li{ 
/*清除ul和li上的小圆点*/ 
list-style:none; 
} 
ul{ 
/*清除子菜单的缩进值*/ 
padding:0; 
margin:0; } 
.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; 
} 
.hmain a{ 
color:white; 
background-image:url(../images/collapsed.gif); 
background-repeat:no-repeat; 
background-position:3px center; 
} 
.hmain li a{ 
color:black; 
background-image:none; 
} 
.hmain ul{ 
display:none; 
} 
.hmain{ 
float:left; 
margin-right:1px; 
}<strong> 
</strong>

Html中引用js文件jquery.js和menu.js,其中menu.js如下:
$(document).ready(function(){ 
//页面中的DOM已经装载完成时,执行的代码 
$(".main> a,.hmain a").click(function(){ 
//找到主菜单项对应的子菜单项 
var ulNode=$(this).next("ul"); 
ulNode.slideToggle(); 
changeIcon($(this)); 
}); 
$(".hmain").hover(function(){ 
$(this).children ("ul").slideToggle(); 
changeIcon($(this).children("a")); 
},function(){ 
$(this).children("ul").slideToggle(); 
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')"); 
} 
} 
}

这样绚丽的下拉菜单就完成了。实现很简单,不过里面的小知识点很零碎。例如:.main a和.main>a的不同之处,前者选择使用.main的这个class的元素内容所有的a节点,后者只选择.main的子节点中的a节点。

这样的例子应用性很强,在网站中使用让界面显得更加的美观,例子才看3个,抓紧时间继续看...

Javascript 相关文章推荐
js String对象中常用方法小结(字符串操作)
Jan 27 Javascript
JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(六)
Apr 07 Javascript
JS正则表达式验证数字代码
Jan 28 Javascript
javascript闭包入门示例
Apr 30 Javascript
jQuery Mobile框架中的表单组件基础使用教程
May 17 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
May 28 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
Nov 10 Javascript
jQuery实现页面倒计时并刷新效果
Mar 13 Javascript
angularjs数组判断是否含有某个元素的实例
Feb 27 Javascript
Node.js使用supervisor进行开发中调试的方法
Mar 26 Javascript
vue使用canvas实现移动端手写签名
Sep 22 Javascript
一起来看看Vue的核心原理剖析
Mar 24 Vue.js
jquery prop的使用介绍及与attr的区别
Dec 19 #Javascript
js获取select选中的option的text示例代码
Dec 19 #Javascript
js 高效去除数组重复元素示例代码
Dec 19 #Javascript
无闪烁更新网页内容JS实现
Dec 19 #Javascript
javascript中字符串的定义示例代码
Dec 19 #Javascript
javascript中typeof的使用示例
Dec 19 #Javascript
javascript中普通函数的使用介绍
Dec 19 #Javascript
You might like
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
PHP实现把数字ID转字母ID
2013/08/12 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
借用Google的Javascript API Loader来加速你的网站
2009/01/28 Javascript
JQERY limittext 插件0.2版(长内容限制显示)
2010/08/27 Javascript
简单实用jquery版三级联动select示例
2013/07/04 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
浅析Javascript的自动分号插入(ASI)机制
2016/09/29 Javascript
js图片上传的封装代码
2017/08/01 Javascript
Node.js简单入门前传
2017/08/21 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
javascript用rem来做响应式开发
2018/01/13 Javascript
JS实现电商商品展示放大镜特效
2020/01/07 Javascript
[03:55]DOTA2完美大师赛选手传记——LFY.MONET
2017/11/18 DOTA
[48:21]Mski vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python解析json文件相关知识学习
2016/03/01 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
Python基于辗转相除法求解最大公约数的方法示例
2018/04/04 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
python+django+rest框架配置创建方法
2019/08/31 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
python获取栅格点和面值的实现
2020/03/10 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
平面设计的岗位职责
2013/11/08 职场文书
会计电算化专业毕业生自荐信
2013/12/20 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
2014年平安夜寄语
2014/12/08 职场文书
党员个人总结范文
2015/02/14 职场文书
关于清明节的演讲稿2015
2015/03/18 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
朋友聚会开场白
2015/06/01 职场文书
赢在执行观后感
2015/06/16 职场文书
离婚民事起诉状
2015/08/03 职场文书