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 相关文章推荐
JScript中使用ADODB.Stream判断文件编码的代码
Jun 09 Javascript
JS滚轮事件onmousewheel使用介绍
Nov 01 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
Oct 31 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
Jun 13 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
Jul 05 Javascript
js原生实现FastClick事件的实例
Nov 20 Javascript
iview在vue-cli3如何按需加载的方法
Oct 31 Javascript
详解小程序input框失焦事件在提交事件前的处理
May 05 Javascript
layui use 定义js外部引用函数的方法
Sep 26 Javascript
javascript实现贪吃蛇小游戏
Jul 28 Javascript
利用React高阶组件实现一个面包屑导航的示例
Aug 23 Javascript
原生JavaScript实现简单五子棋游戏
Jun 28 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
discuz论坛 用户登录 后台程序代码
2008/11/27 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
2017/11/25 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
2019/08/02 PHP
模仿JQuery sortable效果 代码有错但值得看看
2009/11/05 Javascript
jQuery Tips 为AJAX回调函数传递额外参数的方法
2010/12/28 Javascript
php对mongodb的扩展(初识如故)
2012/11/11 Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
2013/04/17 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
2015/04/20 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
javascript中的五种基本数据类型
2015/08/26 Javascript
Angular路由简单学习
2016/12/26 Javascript
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来
2017/11/14 jQuery
vue项目中使用scss的方法步骤
2019/05/16 Javascript
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
[02:23]2018DOTA2亚洲邀请赛趣味视频——反应测试
2018/04/04 DOTA
深入理解Django的自定义过滤器
2017/10/17 Python
python 批量添加的button 使用同一点击事件的方法
2019/07/17 Python
python调用Matplotlib绘制分布点图
2019/10/18 Python
如何使用python进行pdf文件分割
2019/11/11 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
HTML5实现视频直播功能思路详解
2017/11/16 HTML / CSS
Lampenwelt德国:欧洲领先的灯具和照明在线商店
2018/08/05 全球购物
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
入党转预备思想汇报
2014/01/07 职场文书
社区居务公开实施方案
2014/03/27 职场文书
三好学生个人先进事迹材料
2014/05/17 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
党员转正意见怎么写
2015/06/03 职场文书
golang日志包logger的用法详解
2021/05/05 Golang
使用Redis做预定库存缓存功能
2022/04/02 Redis