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函数库)S.Sams Lifexperience ScriptClassLib
Apr 29 Javascript
firefox火狐浏览器与与ie兼容的2个问题总结
Jul 20 Javascript
JavaScript中的Math 使用介绍
Apr 21 Javascript
Javascript技术栈中的四种依赖注入小结
Feb 27 Javascript
轻松掌握JavaScript装饰者模式
Aug 27 Javascript
Bootstrap超大屏幕的实现代码
Mar 22 Javascript
vuex实现数据状态持久化
Nov 11 Javascript
jquery使用echarts实现有向图可视化功能示例
Nov 25 jQuery
JS实现水平移动与垂直移动动画
Dec 19 Javascript
vue实现购物车的监听
Apr 20 Javascript
Vue组件跨层级获取组件操作
Jul 27 Javascript
jQuery实现简单QQ聊天框
Aug 27 jQuery
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 api函数实现数组的交换排序示例
2014/04/13 PHP
php事件驱动化设计详解
2016/11/10 PHP
利用javaScript实现点击输入框弹出窗体选择信息
2013/12/11 Javascript
30个经典的jQuery代码开发技巧
2014/12/15 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
2018/10/08 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
jquery实现简单拖拽效果
2020/07/20 jQuery
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
Python中用Ctrl+C终止多线程程序的问题解决
2013/03/30 Python
python编写朴素贝叶斯用于文本分类
2017/12/21 Python
详解Python之unittest单元测试代码
2018/01/24 Python
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
利用Python求阴影部分的面积实例代码
2018/12/05 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
Python 获取div标签中的文字实例
2018/12/20 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
2019/10/23 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
2020/03/10 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
django前端页面下拉选择框默认值设置方式
2020/08/09 Python
旧时光糖果:Old Time Candy
2018/02/05 全球购物
一套中级Java程序员笔试题
2015/01/14 面试题
统计员岗位职责
2013/11/14 职场文书
污水厂厂长岗位职责
2014/01/04 职场文书
人事档案接收函
2014/01/12 职场文书
学生会主席竞聘书
2014/03/31 职场文书
网络工程师自荐书范文
2014/04/01 职场文书
银行员工考核评语
2014/12/31 职场文书
2015年六年级班主任工作总结
2015/10/15 职场文书
导游词之无锡梅园
2019/11/28 职场文书
详解CSS中的特指度和层叠问题
2021/07/15 HTML / CSS
微信小程序中wxs文件的一些妙用分享
2022/02/18 Javascript