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 相关文章推荐
用JavaScript页面不刷新时全选择,全删除(GridView)
Apr 14 Javascript
Array.prototype.slice 使用扩展
Jun 09 Javascript
基于mootools插件实现遮罩层新手引导
May 24 Javascript
鼠标经过显示二级菜单js特效
Aug 13 Javascript
js简单实现HTML标签Select联动带跳转
Oct 23 Javascript
基于jQuery的图片不完全按比例自动缩小
Jul 11 Javascript
jQuery选择器源码解读(二):select方法
Mar 31 Javascript
JS解析XML文件和XML字符串详解
Apr 17 Javascript
jQuery使用animate创建动画用法实例
Aug 07 Javascript
js实现可键盘控制的简单抽奖程序
Jul 13 Javascript
学习JS中的DOM节点以及操作
Apr 30 Javascript
微信小程序3种位置API的使用方法详解
Aug 05 Javascript
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
php接口与接口引用的深入解析
2013/08/09 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
thinkphp5+layui实现的分页样式示例
2019/10/08 PHP
JavaScript 面向对象的 私有成员和公开成员
2010/05/13 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
第二章之Bootstrap 页面排版样式
2016/04/25 Javascript
JavaScript探测CSS动画是否已经完成的方法
2016/08/30 Javascript
浅谈js for循环输出i为同一值的问题
2017/03/01 Javascript
vue实现百度搜索下拉提示功能实例
2017/06/14 Javascript
webpack处理 css\less\sass 样式的方法
2017/08/21 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
2020/02/14 Javascript
vue中渲染对象中属性时显示未定义的解决
2020/07/31 Javascript
vue router-link 默认a标签去除下划线的实现
2020/11/06 Javascript
vue 实现图片懒加载功能
2020/12/31 Vue.js
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
使用wxPython获取系统剪贴板中的数据的教程
2015/05/06 Python
如何在sublime编辑器中安装python
2020/05/20 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
解决tensorflow 释放图,删除变量问题
2020/06/23 Python
python如何安装下载后的模块
2020/07/03 Python
COS美国官网:知名服装品牌
2019/04/08 全球购物
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
英语专业学生的自我评价
2013/12/30 职场文书
社会实践感言
2014/01/25 职场文书
优秀本科毕业生自荐信
2014/07/04 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
2014年创卫工作总结
2014/11/24 职场文书
团委工作总结2015
2015/04/02 职场文书
债务追讨律师函
2015/06/24 职场文书
jdbc使用PreparedStatement批量插入数据的方法
2021/04/27 MySQL
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
2021/05/21 Redis
redis实现的四种常见限流策略
2021/06/18 Redis
解决Laravel使用验证时跳转到首页的问题
2021/11/17 PHP