Div+CSS+JS树型菜单,可刷新,兼容Firefox,分享给大家
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 | <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> < head > < meta http-equiv = "Content-Type" content = "text/html; charset=gb2312" > < title >Div+CSS+JS树型菜单,可刷新--志文工作室</ title > < style type = "text/css" > <!-- *{margin:0;padding:0;border:0;} body { font-family: arial, 宋体, serif; font-size:12px; } #nav { width:180px; line-height: 24px; list-style-type: none; text-align:left; /*定义整个ul菜单的行高和背景色*/ } /*==================一级目录===================*/ #nav a { width: 160px; display: block; padding-left:20px; /*Width(一定要),否则下面的Li会变形*/ } #nav li { background:#CCC; /*一级目录的背景色*/ border-bottom:#FFF 1px solid; /*下面的一条白边*/ float:left; /*float:left,本不应该设置,但由于在Firefox不能正常显示 继承Nav的width,限制宽度,li自动向下延伸*/ } #nav li a:hover{ background:#CC0000; /*一级目录onMouseOver显示的背景色*/ } #nav a:link { color:#666; text-decoration:none; } #nav a:visited { color:#666;text-decoration:none; } #nav a:hover { color:#FFF;text-decoration:none;font-weight:bold; } /*==================二级目录===================*/ #nav li ul { list-style:none; text-align:left; } #nav li ul li{ background: #EBEBEB; /*二级目录的背景色*/ } #nav li ul a{ padding-left:20px; width:160px; /* padding-left二级目录中文字向右移动,但Width必须重新设置=(总宽度-padding-left)*/ } /*下面是二级目录的链接样式*/ #nav li ul a:link { color:#666; text-decoration:none; } #nav li ul a:visited { color:#666;text-decoration:none; } #nav li ul a:hover { color:#F3F3F3; text-decoration:none; font-weight:normal; background:#CC0000; /* 二级onmouseover的字体颜色、背景色*/ } /*==============================*/ #nav li:hover ul { left: auto; } #nav li.sfhover ul { left: auto; } #content { clear: left; } #nav ul.collapsed { display: none; } --> #PARENT{ width:300px; padding-left:20px; } </ style > </ head > < body > < div id = "PARENT" > < ul id = "nav" > < li >< a href = "#Menu=ChildMenu1" onclick = "DoMenu('ChildMenu1')" >我的网站</ a > < ul id = "ChildMenu1" class = "collapsed" > </ ul > </ li > < li >< a href = "#Menu=ChildMenu2" onclick = "DoMenu('ChildMenu2')" >我的帐务</ a > < ul id = "ChildMenu2" class = "collapsed" > < li >< a href = "#" >网上支付</ a ></ li > < li >< a href = "#" >登记汇款</ a ></ li > < li >< a href = "#" >在线招领</ a ></ li > < li >< a href = "#" >历史帐务</ a ></ li > </ ul > </ li > < li >< a href = "#Menu=ChildMenu3" onclick = "DoMenu('ChildMenu3')" >网站管理</ a > < ul id = "ChildMenu3" class = "collapsed" > < li >< a href = "#" >登录</ a ></ li > < li >< a href = "#" >管理</ a ></ li > < li >< a href = "#" >管理</ a ></ li > </ ul > </ li > < li >< a href = "#Menu=ChildMenu4" onclick = "DoMenu('ChildMenu4')" >网站管理</ a > < ul id = "ChildMenu4" class = "collapsed" > < li >< a href = "#" >登录</ a ></ li > < li >< a href = "#" >管理</ a ></ li > < li >< a href = "#" >管理</ a ></ li > </ ul > </ li > </ ul > </ div > < div style = "width:300;padding-left:30px;" > </ br ></ br > Div+CSS+JS树型菜单,分享给大家,大家一齐学习 </ br ></ br > </ div > </ body > </ html > < script type = text /javascript> <!-- var LastLeftID = ""; function menuFix() { var obj = document.getElementById("nav").getElementsByTagName("li"); for (var i=0; i<obj.length; i++) { obj<span style="text-decoration: line-through;">.onmouseover=function() { this.className+=(this.className.length>0? " ": "") + "sfhover"; } obj<span style="text-decoration: line-through;">.onMouseDown=function() { this.className+=(this.className.length>0? " ": "") + "sfhover"; } obj<span style="text-decoration: line-through;">.onMouseUp=function() { this.className+=(this.className.length>0? " ": "") + "sfhover"; } obj<span style="text-decoration: line-through;">.onmouseout=function() { this.className=this.className.replace(new RegExp("( ?|^)sfhover\b"), ""); } } } function DoMenu(emid) { var obj = document.getElementById(emid); obj.className = (obj.className.toLowerCase() == "expanded"?"collapsed":"expanded"); if((LastLeftID!="")&&(emid!=LastLeftID)) //关闭上一个Menu { document.getElementById(LastLeftID).className = "collapsed"; } LastLeftID = emid; } function GetMenuID() { var MenuID=""; var _paramStr = new String(window.location.href); var _sharpPos = _paramStr.indexOf("#"); if (_sharpPos >= 0 && _sharpPos < _paramStr.length - 1) { _paramStr = _paramStr.substring(_sharpPos + 1, _paramStr.length); } else { _paramStr = ""; } if (_paramStr.length > 0) { var _paramArr = _paramStr.split("&"); if (_paramArr.length>0) { var _paramKeyVal = _paramArr[0].split("="); if (_paramKeyVal.length>0) { MenuID = _paramKeyVal[1]; } } /* if (_paramArr.length>0) { var _arr = new Array(_paramArr.length); } //取所有#后面的,菜单只需用到Menu //for (var i = 0; i < _paramArr.length; i++) { var _paramKeyVal = _paramArr<span style="text-decoration: line-through;">.split('='); if (_paramKeyVal.length>0) { _arr[_paramKeyVal[0]] = _paramKeyVal[1]; } } */ } if(MenuID!="") { DoMenu(MenuID) } } GetMenuID(); //*这两个function的顺序要注意一下,不然在Firefox里GetMenuID()不起效果 menuFix(); --> </ script > |