原生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 相关文章推荐
JS Range HTML文档/文字内容选中、库及应用介绍
May 12 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
Dec 27 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
Jul 28 Javascript
jQuery中的siblings()是什么意思(推荐)
Dec 29 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
Jan 13 Javascript
详解react-router4 异步加载路由两种方法
Sep 12 Javascript
jQuery实现模糊查询的方法分析
May 10 jQuery
vue通过style或者class改变样式的实例代码
Oct 30 Javascript
使用异步controller与jQuery实现卷帘式分页
Jun 18 jQuery
浅析vue-router中params和query的区别
Dec 24 Javascript
JS实现网页烟花动画效果
Mar 10 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
Apr 28 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 中的批处理的实现
2007/06/14 PHP
php数据入库前清理 注意php intval与mysql的int取值范围不同
2010/12/12 PHP
php file_put_contents()功能函数(集成了fopen、fwrite、fclose)
2011/05/24 PHP
php中设置index.php文件为只读的方法
2013/02/06 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
Swoole源码中如何查询Websocket的连接问题详解
2020/08/30 PHP
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
JS Replace 全部替换字符的用法小结
2013/12/24 Javascript
基于jquery实现的文字向上跑动类似跑马灯的效果
2014/06/17 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
javascript入门之window对象【新手必看】
2016/11/22 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
2019/04/11 Javascript
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
对Layer UI 模块化的用法详解
2019/09/26 Javascript
javascript json对象小技巧之键名作为变量用法分析
2019/11/11 Javascript
浅析Python 责任链设计模式
2020/09/11 Python
什么是TCP/IP
2014/07/27 面试题
学子宴答谢词
2014/01/25 职场文书
顶撞领导检讨书
2014/01/29 职场文书
家长对孩子的评语
2014/04/18 职场文书
员工激励培训演讲稿
2014/09/16 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
初中生考试作弊检讨书
2014/12/14 职场文书
介绍信模板
2015/01/31 职场文书
设备技术员岗位职责
2015/04/11 职场文书
交通安全宣传标语(100条)
2019/08/22 职场文书