原生js做的手风琴效果的导航菜单


Posted in Javascript onNovember 08, 2013

做好的手风琴效果如下,具体看代码:
原生js做的手风琴效果的导航菜单 
html代码

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Accordion</title> 
<style> 
#accordion{ 
width:200px; 
} 
#accordion ul{ 
list-style: none; 
display:none; 
} 
.first-level{ 
background-color: #d8d8d8; 
background-color: rgba(236, 208, 208, 0.53); 
border-radius: 4px; 
display: block; 
cursor: pointer; 
position: relative; 
margin: 2px 0 0 0; 
padding: 8px; 
min-height: 0; 
} 
</style> 
</head> 
<body> 
<div id="accordion"> 
<div> 
<h3 class="first-level">level one</h3> 
<ul> 
<li>first item</li> 
<li>second item</li> 
<li>third item</li> 
</ul> 
</div> 
<div> 
<h3 class="first-level">level one</h3> 
<ul> 
<li>first item</li> 
<li>second item</li> 
<li>third item</li> 
</ul> 
</div> 
<div> 
<h3 class="first-level">level one</h3> 
<ul> 
<li>first item</li> 
<li>second item</li> 
<li>third item</li> 
</ul> 
</div> 
</div> 
<script src="common.js"></script> 
<script> 
var heads = document.querySelectorAll(".first-level"); 
function headClick(event){ 
var target = EventUtil.getTarget(event); 
toggleDisplay(target.parentNode.querySelector("ul")); 
} 
for(var i=0;i<heads.length;i++){ 
EventUtil.addHandler(heads[i], "click", headClick); 
} window.onunload = function (){ 
for(var i=0;i<heads.length;i++){ 
EventUtil.removeHandler(heads[i], "click", headClick); 
} 
heads = null; 
}

common.js文件
var EventUtil = { 
addHandler : function (element, type, handler) { 
if (element.addEventListener) { 
element.addEventListener(type, handler, false); 
} else if (element.attachEvent) { 
element.attachEvent("on" + type, handler); 
} else { 
element["on" + type] = handler; 
} 
}, 
removeHandler : function (element, type, handler) { 
if (element.removeEventListener) { 
element.removeEventListener(type, handler, false); 
} else if (element.detachEvent) { 
element.detachEvent("on" + type, handler); 
} else { 
element["on" + type] = null; 
} 
}, 
getEvent : function (event) { 
return event || window.event; 
}, 
getTarget : function (event) { 
return event.target || event.srcElement; 
} 
} 
var getStyle = function (el, style) { 
if (el.currentStyle) { 
style = style.replace(/\-(\w)/g, function (all, letter) { 
return letter.toUpperCase(); 
}); 
var value = el.currentStyle[style]; 
return value; 
} else { 
return document.defaultView.getComputedStyle(el, null).getPropertyValue(style); 
} 
} 

var toggleDisplay = function (element) { 
var display = getStyle(element, "display"); 
if (display == "none") { 
element.style.display = "block"; 
} else { 
element.style.display = "none"; 
} 
}
Javascript 相关文章推荐
JavaScript基本对象
Jan 11 Javascript
用js实现的自定义的对话框的实现代码
Mar 21 Javascript
div失去焦点事件实现思路
Apr 22 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
Oct 29 Javascript
推荐10 款 SVG 动画的 JavaScript 库
Mar 24 Javascript
JavaScript使用Replace进行字符串替换的方法
Apr 14 Javascript
js流动式效果显示当前系统时间
May 16 Javascript
Vue动态组件实例解析
Aug 20 Javascript
如何快速解决JS或Jquery ajax异步跨域的问题
Jan 08 jQuery
JS设计模式之观察者模式实现实时改变页面中金额数的方法
Feb 05 Javascript
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 jQuery
在Vue中使用Select选择器拼接label的操作
Oct 22 Javascript
jquery 日期控件datepicker属性详细解析
Nov 08 #Javascript
jquery增加时编辑jqGrid(实例代码)
Nov 08 #Javascript
jqueyr判断checkbox组的选中(示例代码)
Nov 08 #Javascript
iframe子父页面调用js函数示例
Nov 07 #Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
Nov 07 #Javascript
Checbox的操作含已选、未选及判断代码
Nov 07 #Javascript
js操作label给label赋值及取label的值示例
Nov 07 #Javascript
You might like
php版微信公众平台回复中文出现乱码问题的解决方法
2016/09/22 PHP
浅析PHP开发规范
2018/02/05 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
网站上面有这种切换效果
2006/06/26 Javascript
firefox中JS读取XML文件
2006/12/21 Javascript
HTML页面如何象ASP一样接受参数
2007/02/07 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
php与js的区别是什么
2013/08/05 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
node上的redis调用优化示例详解
2018/10/30 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
Python生成随机验证码的两种方法
2015/12/22 Python
Python动态生成多维数组的方法示例
2018/08/09 Python
Python写一个基于MD5的文件监听程序
2019/03/11 Python
python多线程抽象编程模型详解
2019/03/20 Python
python中的colorlog库使用详解
2019/07/05 Python
Python依赖包整体迁移方法详解
2019/08/15 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
python输出pdf文档的实例
2020/02/13 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
从python读取sql的实例方法
2020/07/21 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
pandas使用函数批量处理数据(map、apply、applymap)
2020/11/27 Python
python二维图制作的实例代码
2020/12/03 Python
CSS3中文字镂空、透明值、阴影效果设置示例小结
2016/03/07 HTML / CSS
UGG雪地靴德国官网:UGG德国
2016/11/19 全球购物
带刀到教室的检讨书
2014/10/04 职场文书
个人存款证明书
2014/10/18 职场文书