Posted in Javascript onNovember 08, 2013
做好的手风琴效果如下,具体看代码:
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"; } }
原生js做的手风琴效果的导航菜单
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@