首頁 >web前端 >js教程 >經典_用js快速實現滑鼠和鍵盤選擇下拉式選單(程式碼詳解)

經典_用js快速實現滑鼠和鍵盤選擇下拉式選單(程式碼詳解)

php是最好的语言
php是最好的语言原創
2018-07-25 10:07:231664瀏覽

花了幾個小時整理了一下程式碼,怎麼用js實作滑鼠選擇和鍵盤操作下拉選單,非常經典的案例實戰。 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;}
  #pselect{width:186px; margin:80px auto; position:relative; z-index:10000;}
  #pselect 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;}
    #pselect ul{width:184px;border:1px solid #333333; background-color:#ffffff; position:absolute; z-index:20000; margin-top:-1px; display:none;}
    #pselect ul li{height:24px; line-height:24px;}
    #pselect ul li a{display:block; height:24px; color:#333333; text-decoration:none; padding-left:10px; padding-right:10px;}
  </style>
  <script type="text/javascript">
    window.onload=function(){
     var box=document.getElementById(&#39;pselect&#39;),
     title=box.getElementsByTagName(&#39;cite&#39;)[0],
     menu=box.getElementsByTagName(&#39;ul&#39;)[0],
     as=box.getElementsByTagName(&#39;a&#39;),
     index=-1;
     
    // 点击三角时   // 执行脚本
    //显示选项面板
    title.onclick=function(event){
      
      event = event || window.event;//控制浏览器兼容
      //取消冒泡事件
          if(event.stopPropagation){//非ie
            event.stopPropagation();
          }else{
            event.cancleBubble = true;//ie
          }
          menu.style.display = "block";
          document.onkeydown = function(e){
            e = e || window.event;
            if(e.keyCode == 38){//下键
              index++;
              if(index == as.length){
                index = 0;
              }
              resetAs();
              as[index].style.background = "#567";
            }else if(e.keyCode == 40){//上键
              index--;
              if(index<0){
                index = as.length - 1;
              }
              resetAs();
              as[index].style.background = "#567";
            }else if(e.keyCode == 13){ //enter键
              e.preventDefault?e.preventDefault():e.returnValue = false;
              title.innerHTML = as[index].innerHTML;
              index = -1;
              menu.style.display = "none";
              resetAs();
            }
          }
          
          
        }  
        
        /*重置所有选项的背景*/

        function resetAs(){
          for(var i = 0,l = as.length;i<l;i++){
            as[i].style.background = "#FFF";
          }
        }
        
   // 滑过滑过、离开、点击每个选项时
   
      // 执行脚本
      for(var i = 0;i<as.length;i++){
        as[i].onmouseover = function(){
          this.style.background = "#567";
        };
        as[i].onmouseout = function(){
          this.style.background = "#FFF";
        };
        as[i].onclick = function(event){
          //取消冒泡事件
          if(event.stopPropagation){//非ie
            event.stopPropagation();
          }else{
            event.cancleBubble = true;//ie
          }
          title.innerHTML = this.innerHTML;
          menu.style.display = "none";
        }
        
      }
      
      
       // 点击页面空白处时 隐藏选项面板
       // 执行脚本
       document.onclick = function(){
        menu.style.display = "none";
      }
      

      
    }
  </script>
</head>
<body>
 <p id="pselect">
  <cite>请选择分类</cite>
  <ul>
   <li id="li"><a href="javascript:;" selectid="1">ASP开发</a></li>
   <li><a href="javascript:;" selectid="2">.NET开发</a></li>
   <li><a href="javascript:;" selectid="3">PHP开发</a></li>
   <li><a href="javascript:;" selectid="4">Javascript开发</a></li>
   <li><a href="javascript:;" selectid="5">Java特效</a></li>
 </ul>
</p>
</body>
</html>

相關推薦:

使用Javascript實作選擇下拉式選單互移並排序_jquery

影片教學:形形色色的下拉式選單實作

以上是經典_用js快速實現滑鼠和鍵盤選擇下拉式選單(程式碼詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn