国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript下拉菜單功能實例代碼

2019-11-19 17:23:00
字體:
來源:轉載
供稿:網友

本文給大家分享一段實例代碼關于js實現下拉菜單功能,具體代碼如下所示:

<!doctype html> <html lang="en">   <head>     <meta charset="UTF-8">     <title>下拉菜單</title>     <style type="text/css">       body,       ul,       li {         margin: 0;         padding: 0;         font-size: 13px;       }       ul,       li {         list-style: none;       }       #divselect {         width: 186px;         margin: 80px auto;         position: relative;         z-index: 10000;       }       #divselect cite {         width: 150px;         height: 24px;         line-height: 24px;         display: block;         color: #807a62;         cursor: pointer;         font-style: normal;         padding-left: 4px;         padding-right: 30px;         border: 1px solid #333333;         /*background: url(xjt.png) no-repeat right center;*/       }       cite:before {         content: '';         position: absolute;         right: 7px;         bottom: 7px;         width: 0;         height: 0;         border-width: 4px;         border-style: solid;         border-color: #888 transparent transparent transparent;         transition: all 0.2s;         -webkit-transition: all 0.2s;         -moz-transition: all 0.2s;         -o-transition: all 0.2s;         -ms-transition: all 0.2s;         transform-origin: 50% 25%;         -ms-transform-origin: 50% 25%;         -moz-transform-origin: 50% 25%;         -webkit-transform-origin: 50% 25%;         -o-transform-origin: 50% 25%;       }       .extended cite:before {         transform: rotate(180deg);         -webkit-transform: rotate(180deg);         -moz-transform: rotate(180deg);         -o-transform: rotate(180deg);         -ms-transform: rotate(180deg);       }       #divselect ul {         width: 184px;         border: 1px solid #333333;         background-color: #ffffff;         position: absolute;         z-index: 20000;         margin-top: -1px;         display: none;       }       #divselect ul li {         height: 24px;         line-height: 24px;       }       #divselect ul li a {         display: block;         height: 24px;         color: #333333;         text-decoration: none;         padding-left: 10px;         padding-right: 10px;       }       .animated {         animation-fill-mode: both;         -webkit-animation-fill-mode: both;         -moz-animation-fill-mode: both;         -o-animation-fill-mode: both;         -ms-animation-fill-mode: both;       }       .speed_fast {         animation-duration: .3s;         /*-webkit-animation-duration: 0.2s;         -moz-animation-duration: 0.2s;         -o-animation-duration: 0.2s;         -ms-animation-duration: 0.2s;*/       }       .anim_extendDown {         animation-name: extendDown;         -webkit-animation-name: extendDown;         -moz-animation-name: extendDown;         -o-animation-name: extendDown;         -ms-animation-name: extendDown;       }       @keyframes extendDown {         0% {           border-bottom-color: transparent;           height: 0;         }         100% {           border-bottom-color: #333;           height: 120px;         }       }       @-webkit-keyframes extendDown {         0% {           border-bottom-color: transparent;           height: 0;         }         100% {           border-bottom-color: #333;           height: 120px;         }       }       @-moz-keyframes extendDown {         0% {           border-bottom-color: transparent;           height: 0;         }         100% {           border-bottom-color: #333;           height: 120px;         }       }       @-o-keyframes extendDown {         0% {           border-bottom-color: transparent;           height: 0;         }         100% {           border-bottom-color: #333;           height: 120px;         }       }       @-ms-keyframes extendDown {         0% {           border-bottom-color: transparent;           height: 0;         }         100% {           border-bottom-color: #333;           height: 120px;         }       }     </style>   </head>   <body>     <div id="divselect">       <cite>請選擇分類</cite>       <ul>         <li id="li">           <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" selectid="1">ASP開發</a>         </li>         <li>           <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" selectid="2">.NET開發</a>         </li>         <li>           <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" selectid="3">PHP開發</a>         </li>         <li>           <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" selectid="4">Javascript開發</a>         </li>         <li>           <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" selectid="5">Java特效</a>         </li>       </ul>     </div>     <script type="text/javascript">       window.onload = function() {         var box = document.getElementById('divselect'),           title = box.getElementsByTagName('cite')[0],           menu = box.getElementsByTagName('ul')[0],           as = box.getElementsByTagName('a'),           index = -1;         //初始樣式         function resetM() {           box.className = "";           menu.className = "";           menu.style.display = "none";           index = -1;           resetA();         }         //清空a選項樣式         function resetA() {           for(var i = 0; i < as.length; i++) {             as[i].style.background = "#fff";           }         }         // 點擊三角時         title.onclick = function(event) {           //阻止事件冒泡           event = event || window.event;           event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true;           if(box.className == "extended") {             resetM();           } else {             box.className = "extended"; //給box加類名讓三角旋轉             menu.className = "animated speed_fast anim_extendDown"; //下拉菜單的下拉動畫             menu.style.display = "block";           }         }         document.onkeydown = function(event) {           event = event || window.event;           if(box.className == "extended") {             if(event.keyCode == 38) { //向上鍵               event.preventDefault ? event.preventDefault() : event.returnValue = false;               index--;               if(index == -1) {                 index = as.length - 1;               }               resetA();               as[index].style.background = "#ccc";             } else if(event.keyCode == 40) { //向下鍵               event.preventDefault ? event.preventDefault() : event.returnValue = false;               index++;               if(index == as.length) {                 index = 0;               }               resetA();               as[index].style.background = "#ccc";             } else if(event.keyCode == 13) { //回車鍵               event.preventDefault ? event.preventDefault() : event.returnValue = false;               title.innerHTML = as[index].innerHTML;               resetM();             }           }         }         // 滑過滑過、離開、點擊每個選項時         for(var i = 0; i < as.length; i++) {           as[i].onmouseover = function() {             resetA();             this.style.background = "#ccc";             index = this.getAttribute('selectid') - 1;           }           as[i].onclick = function() {             resetM();             title.innerHTML = this.innerHTML;           }         }         // 點擊頁面空白處時         document.onclick = function() {           resetM();         }       }     </script>   </body> </html> 

1、要阻止事件冒泡

2、鍵盤事件,用index索引

3、通過設置類名或清空類名的方式給元素增加動畫和恢復原有樣式

以上所述是小編給大家介紹的JavaScript下拉菜單功能實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 定西市| 志丹县| 香港 | 金堂县| 津市市| 临沂市| 麻城市| 长治市| 镇安县| 峨边| 射阳县| 色达县| 斗六市| 满洲里市| 潼南县| 东乡族自治县| 荥经县| 江孜县| 新乡县| 阳新县| 宁安市| 沧源| 师宗县| 织金县| 宁河县| 宜丰县| 台安县| 神木县| 南安市| 景泰县| 略阳县| 商水县| 蓬溪县| 德兴市| 长垣县| 沛县| 开封县| 河北省| 资溪县| 剑阁县| 阿图什市|