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 操作符整理[推荐收藏]
Nov 15 Javascript
JavaScript中“过于”犀利地for/in循环使用示例
Oct 22 Javascript
jQuery实现冻结表头的方法
Mar 09 Javascript
js获取隐藏元素宽高的实现方法
May 19 Javascript
easyui导出excel无法弹出下载框的快速解决方法
Nov 10 Javascript
Angular2库初探
Mar 01 Javascript
Vue中的methods、watch、computed的区别
Nov 26 Javascript
jQuery子选择器与可见性选择器实例分析
Jun 28 jQuery
深入浅出vue图片路径的实现
Sep 04 Javascript
vue把输入框的内容添加到页面的实例讲解
Nov 11 Javascript
vue大型项目之分模块运行/打包的实现
Sep 21 Javascript
解决vue中provide inject的响应式监听
Apr 19 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
PHP 将图片按创建时间进行分类存储的实现代码
2010/01/05 PHP
PHP setTime 设置当前时间的代码
2012/08/27 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
2013/06/25 PHP
如何取得中文字符串中出现次数最多的子串
2013/08/08 PHP
浅析PHP原理之变量(Variables inside PHP)
2013/08/09 PHP
php中bind_param()函数用法分析
2017/03/28 PHP
Mac地址验证的javascript代码
2013/11/09 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
2014/01/26 Javascript
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
JS瀑布流实现方法实例分析
2016/12/19 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
vue-cli中的babel配置文件.babelrc实例详解
2018/02/22 Javascript
vue学习笔记之slot插槽用法实例分析
2020/02/29 Javascript
JS实现多功能计算器
2020/10/28 Javascript
[04:10]2016国际邀请赛中国区预选赛第二日TOP10精彩集锦
2016/06/28 DOTA
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
用Python的pandas框架操作Excel文件中的数据教程
2015/03/31 Python
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
2017/06/05 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
python mac下安装虚拟环境的图文教程
2019/04/12 Python
基于python实现百度翻译功能
2019/05/09 Python
python递归法解决棋盘分割问题
2019/07/17 Python
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
2020/02/26 Python
Python下载网易云歌单歌曲的示例代码
2020/08/12 Python
Python实现AES加密,解密的两种方法
2020/10/03 Python
亲子读书活动方案
2014/02/22 职场文书
五年后的职业生涯规划
2014/03/04 职场文书
法定代表人授权委托书范文
2014/09/22 职场文书
思想作风建设心得体会
2014/10/22 职场文书
优秀党员事迹材料
2014/12/18 职场文书
幼儿教师个人总结
2015/02/05 职场文书
公司年会开场白
2015/06/01 职场文书
vue实现可拖拽的dialog弹框
2021/05/13 Vue.js