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 相关文章推荐
JQuery的read函数与js的onload不同方式实现
Mar 18 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
Jun 06 Javascript
JavaScript入门教程之引用类型
May 04 Javascript
获取JS中网页各种高宽与位置的方法总结
Jul 27 Javascript
Angular多选、全选、批量选择操作实例代码
Mar 10 Javascript
JavaScript数据结构之二叉树的查找算法示例
Apr 13 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
May 02 Javascript
react-router实现跳转传值的方法示例
May 27 Javascript
vue页面使用阿里oss上传功能的实例(二)
Aug 09 Javascript
vue-baidu-map 进入页面自动定位的解决方案(推荐)
Apr 28 Javascript
JS 实现获取验证码 倒计时功能
Oct 29 Javascript
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
Nov 20 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制作静态网站的模板框架(一)
2006/10/09 PHP
解析strtr函数的效率问题
2013/06/26 PHP
PHP实现CSV文件的导入和导出类
2015/03/24 PHP
详谈phpAdmin修改密码后拒绝访问的问题
2017/04/03 PHP
Highslide.js是一款基于js实现的网页中图片展示插件
2020/03/30 Javascript
JavaScript入门教程(7) History历史对象
2009/01/31 Javascript
js和as的稳定传值问题解决
2013/07/14 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
javascript实现随机显示星星特效
2016/01/28 Javascript
jQuery实现底部浮动窗口效果
2016/09/07 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
在vue-cli中组件通信的方法
2017/12/16 Javascript
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
Python:Scrapy框架中Item Pipeline组件使用详解
2017/12/27 Python
python实现list由于numpy array的转换
2018/04/04 Python
python logging模块书写日志以及日志分割详解
2019/07/22 Python
Python3将数据保存为txt文件的方法
2019/09/12 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
python第三方库学习笔记
2020/02/07 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
QML用PathView实现轮播图
2020/06/03 Python
css3圆角样式分享自定义按钮样式
2013/12/27 HTML / CSS
H5离线存储Manifest原理及使用
2020/04/28 HTML / CSS
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
什么造成了Java里面的异常
2016/04/24 面试题
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
人力资源部经理助理岗位职责
2014/03/04 职场文书
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
大学生赌博检讨书
2014/09/22 职场文书
幼儿园大班个人总结
2015/02/28 职场文书
出纳2015年度工作总结范文
2015/10/14 职场文书
Android基于Fresco实现圆角和圆形图片
2022/04/01 Java/Android