JavaScript滑鼠懸浮出現下拉選單效果
本章節分享一段程式碼例項,它實現了滑鼠懸浮出現下拉選單效果。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> body{ font-family:Verdana; font-size:12px; line-height:1.5; } a{ color:#000; text-decoration:none; } a:hover{ color:#F00; } #menu{ width:500px; height:28px; margin:0 auto; border-bottom:3px solid #E10001; } #menu ul{ list-style:none; margin:0px; padding:0px; } #menu ul li{ float:left; margin-left:2px; } #menu ul li a{ display:block; width:87px; height:28px; line-height:28px; text-align:center; font-size:14px; } #menu ul li a#current{ font-weight:bold; color:#fff; } #menu ul li ul{ border:1px solid #ccc; display:none; position:absolute; } #menu ul li ul li{ float:none; width:87px; background:#eee; margin:0; } #menu ul li ul li a{ background:none; } #menu ul li ul li a:hover{ background:#333; color:#fff; } #menu ul li:hover ul{ display:block; } #menu ul li.sfhover ul{ display:block; } </style> <script type="text/javascript"> function menuFix(){ var sfEls=document.getElementById("menu").getElementsByTagName("li"); for (var index=0;index<sfEls.length;index++){ sfEls[index].onmouseover=function(){ this.className+=(this.className.length > 0 ? " " : "") + "sfhover"; } sfEls[index].onmouseout=function(){ this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"),""); } } } window.onload = menuFix; </script> </head> <body> <div id="menu"> <ul> <li><a id="current" href="#">首頁</a></li> <li> <a href="#">網頁版式</a> <ul> <li><a href="#">自適應寬度</a></li> <li><a href="#">固定寬度</a></li> </ul> </li> <li> <a href="#">web教程</a> <ul> <li><a href="#">新手入門</a></li> <li><a href="#">softwhy.com</a></li> <li><a href="#">常見問題</a></li> </ul> </li> <li><a href="#">web例項</a></li> <li><a href="#">常用程式碼</a></li> </ul> </div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).function menuFix(){},此方法是onload事件處理函式。
(2).var sfEls=document.getElementById("menu").getElementsByTagName("li"),獲取li元素集合。
(3).for (var index=0;index<sfEls.length;index++){},遍歷每一個li元素集合。
(4).sfEls[index].onmouseover=function(){ this.className+=(this.className.length > 0 ? " " : "") + "sfhover";
},為當前li元素註冊onmouseover時間處理函式。如果當前li元素具有class屬性,那麼後面加個空格再連線上"sfhover",如果沒有class屬性值,那麼就連結一個空字串,再連線上"sfhover"。其實就是這種形式class="a",如果再新增class類b的話,只能在a後面加一個空格,class="a b"。又因為樣式表中有如下程式碼:
#menu ul li.sfhover ul{
display:block;
},所以二級導航選單會顯示。
(5).sfEls[index].onmouseout=function(){
this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"),"");
},當滑鼠離開的時候,就會把演示類中的sfhover替換為空,當然二級選單就會隱藏。
二.相關閱讀:
(1).getElementsByTagName()參閱document.getElementsByTagName()一章節。
(2).onmouseover事件參閱javascript mouseover事件一章節。
(3).className參閱js className一章節。
(4).onmouseout事件參閱javascript mouseout事件一章節。
(5).replace()參閱正規表示式replace()一章節。
相關文章
- 滑鼠懸浮出現下拉選單程式碼例項
- css滑鼠懸浮下拉選單效果CSS
- js css滑鼠懸停顯示下拉選單JSCSS
- 滑鼠懸浮緩慢下拉導航選單
- HTML+CSS+JQuery實現下拉選單滑鼠懸浮顯示下拉選單,取消隱藏HTMLCSSjQuery
- css3實現的滑鼠懸浮出現輻射波紋效果CSSS3
- 滑鼠懸浮出現tips提示框效果程式碼例項
- 滑鼠懸浮出現圓形資訊遮罩層遮罩
- css滑鼠懸浮二級下拉導航選單CSS
- CSS滑鼠懸浮出現遮罩層程式碼演示CSS遮罩
- JavaScript實現HTML導航欄下拉選單[懸浮顯示]JavaScriptHTML
- JavaScript slide下拉導航選單效果JavaScriptIDE
- javascript實現滑鼠懸浮圖片實現抖動效果JavaScript
- javascript實現的滑鼠懸浮當前td單元格變色效果JavaScript
- 滑鼠懸浮出現十字架形滑鼠指標指標
- 滑鼠移上去出現下拉選單
- css+jquery滑鼠滑過,顯示下拉選單效果CSSjQuery
- JavaScript 動畫效果緩慢二級下拉選單JavaScript動畫
- 滑鼠懸浮上浮出現說明文字程式碼例項
- CSS3滑鼠懸浮出現半透明遮罩層詳解CSSS3遮罩
- 滑鼠懸浮具有背景動畫跟隨效果的導航選單動畫
- HTML5與CSS3中滑鼠懸停會有下拉選單HTMLCSSS3
- 選擇下拉選單項實現跳轉效果
- 滑鼠滑過,展示下拉選單
- 滑鼠懸浮div實現旋轉效果
- css實現的二級下拉選單效果CSS
- javascript模擬美化select下拉選單效果詳解JavaScript
- 滑鼠經過顯示下拉選單
- JavaScript讀取xml實現下拉選單JavaScriptXML
- UWP 取消GridView、ListView滑鼠選中、懸停效果View
- 滑鼠懸浮或者選中實現當前元素凹凸視覺效果視覺
- 滑鼠懸浮導航選單底部出現動畫橫線動畫
- BLOCK、BFC、邊距合併,滑鼠懸浮選單出現BloC
- 滑鼠懸浮實現環形旋轉效果
- 滑鼠懸浮圖片實現翻轉效果
- 滑鼠懸浮圖片實現縮放效果
- 選中select下拉選單option項實現提交效果
- css3實現滑鼠懸浮出現一個說明層程式碼例項CSSS3