原生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 函数调用的对象和方法
Jul 01 Javascript
防止按钮在短时间内被多次点击的方法
Mar 10 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
Aug 22 Javascript
jQuery表格行上移下移和置顶的实现方法
Oct 08 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
May 17 Javascript
web 前端常用组件之Layer弹出层组件
Sep 22 Javascript
动态创建Angular组件实现popup弹窗功能
Sep 15 Javascript
js自定义trim函数实现删除两端空格功能
Feb 09 Javascript
微信小程序云开发 生成带参小程序码流程
May 18 Javascript
小程序使用watch监听数据变化的方法详解
Sep 20 Javascript
jquery向后台提交数组的代码分析
Feb 20 jQuery
如何配置vue.config.js 处理static文件夹下的静态文件
Jun 19 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 email邮箱正则
2008/10/08 PHP
使用PHP实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
2011/10/09 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
jquery form表单提交插件asp.net后台中文解码
2010/06/12 Javascript
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
JS实现字符串转日期并比较大小实例分析
2015/12/09 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
使用jquery.qrcode.js生成二维码插件
2016/10/17 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
vue2.0 兄弟组件(平级)通讯的实现代码
2018/01/15 Javascript
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
15分钟深入了解JS继承分类、原理与用法
2019/01/19 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
微信小程序实现卡片左右滑动效果的示例代码
2019/05/01 Javascript
利用原生JavaScript实现造日历轮子实例代码
2019/05/08 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
javascript实现移动端红包雨页面
2020/06/23 Javascript
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
Python实现简单的语音识别系统
2017/12/13 Python
Python读取excel指定列生成指定sql脚本的方法
2018/11/28 Python
利用Python求阴影部分的面积实例代码
2018/12/05 Python
python简单验证码识别的实现方法
2019/05/10 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
pandas 中对特征进行硬编码和onehot编码的实现
2019/12/20 Python
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
html5的canvas方法使用指南
2014/12/15 HTML / CSS
通信工程毕业生自荐信
2013/11/01 职场文书
餐厅销售主管职责范本
2014/02/19 职场文书
优秀广告词大全
2014/03/19 职场文书
领导干部作风整顿剖析材料
2014/10/11 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
孙振耀退休感言
2015/08/01 职场文书
创业计划书之便利店
2019/09/05 职场文书
ztree+ajax实现文件树下载功能
2021/05/18 Javascript