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
- JavaScript slide下拉導航選單效果JavaScriptIDE
- 滑鼠懸浮出現圓形資訊遮罩層遮罩
- CSS滑鼠懸浮出現遮罩層程式碼演示CSS遮罩
- JavaScript實現HTML導航欄下拉選單[懸浮顯示]JavaScriptHTML
- 滑鼠移上去出現下拉選單
- JavaScript 動畫效果緩慢二級下拉選單JavaScript動畫
- HTML5與CSS3中滑鼠懸停會有下拉選單HTMLCSSS3
- UWP 取消GridView、ListView滑鼠選中、懸停效果View
- 滑鼠懸浮div實現旋轉效果
- 滑鼠經過顯示下拉選單
- 滑鼠懸浮圖片實現翻轉效果
- 滑鼠懸浮圖片實現縮放效果
- 滑鼠懸浮實現環形旋轉效果
- CSS: hover選擇器的使用(實現滑鼠懸浮效果,滑鼠移上去div顯示)CSS
- vue使用iview實現單選,禁選,下拉框的效果VueView
- CSS滑鼠懸停下拉顯示內容CSS
- 滑鼠懸浮圖片出現文字說明效果
- select下拉選單跳轉效果程式碼
- [譯] CSS 變數實現炫酷滑鼠懸浮效果CSS變數
- CSS3動畫效果下拉導航選單效果CSSS3動畫
- Vue 資料雙向繫結實現二級下拉懸浮選單Vue
- jQuery滑鼠懸浮翻牌效果詳解jQuery
- jQuery滑鼠懸浮聚焦效果詳解jQuery
- 滑鼠懸浮圖片旋轉效果
- bootstrap 選單導航選單nav li滑鼠移入hover下拉顯示boot
- JavaScript帶下拉選單的文字框JavaScript
- JavaScript二級下拉選單詳解JavaScript
- JavaScript動態操作select下拉選單JavaScript
- jQuery 淡入淡出效果下拉導航選單jQuery
- JavaScript、CSS實現滑鼠跟隨繁花效果JavaScriptCSS
- 滑鼠懸浮連結動畫高亮效果動畫
- 滑鼠懸浮電風扇旋轉效果
- CSS3滑鼠懸浮元素放大效果CSSS3
- CSS滑鼠懸浮行背景變色效果CSS