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

首頁(yè) > 開(kāi)發(fā) > JS > 正文

JavaScript下拉菜單功能實(shí)例代碼

2024-05-06 16:35:28
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

本文給大家分享一段實(shí)例代碼關(guān)于js實(shí)現(xiàn)下拉菜單功能,具體代碼如下所示:

<!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>請(qǐng)選擇分類</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開(kāi)發(fā)</a>         </li>         <li>           <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" selectid="2">.NET開(kāi)發(fā)</a>         </li>         <li>           <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" selectid="3">PHP開(kāi)發(fā)</a>         </li>         <li>           <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" selectid="4">Javascript開(kāi)發(fā)</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'),          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選項(xiàng)樣式         function resetA() {           for(var i = 0; i < as.length; i++) {             as[i].style.background = "#fff";           }         }         // 點(diǎn)擊三角時(shí)         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加類名讓三角旋轉(zhuǎn)             menu.className = "animated speed_fast anim_extendDown"; //下拉菜單的下拉動(dòng)畫             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();             }           }         }         // 滑過(guò)滑過(guò)、離開(kāi)、點(diǎn)擊每個(gè)選項(xiàng)時(shí)         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;           }         }         // 點(diǎn)擊頁(yè)面空白處時(shí)         document.onclick = function() {           resetM();         }       }     </script>   </body> </html> 

1、要阻止事件冒泡

2、鍵盤事件,用index索引

3、通過(guò)設(shè)置類名或清空類名的方式給元素增加動(dòng)畫和恢復(fù)原有樣式

以上所述是小編給大家介紹的JavaScript下拉菜單功能實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)VeVb武林網(wǎng)網(wǎng)站的支持!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JavaScript/Ajax教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 鹿邑县| 南郑县| 张家口市| 南京市| 布拖县| 曲松县| 建宁县| 定兴县| 田林县| 长宁区| 英德市| 霍州市| 昆明市| 历史| 安达市| 曲阳县| 新巴尔虎左旗| 宝山区| 行唐县| 大同县| 泾阳县| 都兰县| 陆良县| 新余市| 盐城市| 侯马市| 梁山县| 阿拉善右旗| 沙湾县| 屏南县| 澎湖县| 蚌埠市| 辛集市| 甘孜县| 金塔县| 南开区| 南澳县| 达拉特旗| 庄河市| 吉首市| 昭觉县|