為什么按鍵盤(pán)方向鍵的時(shí)候整個(gè)頁(yè)面也同時(shí)在上下移動(dòng)??要如何修改呢??
<!doctype html>
<html>
<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;}
#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;}
?</style>
?? <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;
??
??? // 點(diǎn)擊三角時(shí)
??? title.onclick=function(event){
????? // 執(zhí)行腳本
????? menu.style.display='block';//顯示下拉菜單欄
????? stopPropagation(event);//阻止冒泡
??? }
???
???
??? //鍵盤(pán)事件
??? document.onkeydown=function(event)
??? {
??????? event=event||window.event;
?????? //點(diǎn)方向鍵上
?????? if(event.keyCode==38)
??????? {
??????????? if(index<as.length&&index>=0)
??????????? {as[index].style.backgroundColor='#fff';}
??????????? index--;
??????????? if(index<0)
??????????? {index=0;}
??????????? as[index].style.backgroundColor='#eee';
??????? }
??????? //點(diǎn)擊方向鍵下
??????? else if(event.keyCode==40)
??????? {
??????????? if(index<as.length&&index>=0)
??????????? {as[index].style.backgroundColor='#fff';}
??????????? index++;
??????????? if(index>=as.length)
??????????? {index=as.length-1;}
??????????? as[index].style.backgroundColor='#eee';
??????? }
??????? //回車(chē)
??????? else if(event.keyCode==13)
??????? {
??????????? as[index].style.backgroundColor='#fff';
??????????? menu.style.display='none';
??????????? title.innerHTML=as[index].innerHTML;
??????????? index=-1;
??????? }
??? }
???
???
???
??? //鼠標(biāo)事件
?? // 滑過(guò)滑過(guò)、離開(kāi)、點(diǎn)擊每個(gè)選項(xiàng)時(shí)
????? // 執(zhí)行腳本
??? for(var i=0;i<as.length;i++)
??? {
??????? //鼠標(biāo)移至背景色變成灰色
??????? as[i].onmouseover=function(){
??????????? this.style.backgroundColor='#eee';
??????? }
??????? //鼠標(biāo)移開(kāi)還原背景色
??????? as[i].onmouseout=function(){
??????????? this.style.backgroundColor='#fff';
??????? }
??????? //點(diǎn)擊選項(xiàng)將選項(xiàng)填至方框
??????? as[i].onclick=function(){
??????????? menu.style.display='none';
??????????? title.innerHTML=this.innerHTML;
??????????? stopPropagation(event);//阻止冒泡
??????? }
??? }
?? // 點(diǎn)擊頁(yè)面空白處時(shí)
?????? // 執(zhí)行腳本
?????? document.onclick=function()
?????? {
?????????? menu.style.display='none';
?????? }
??????
??????
?????? //封裝一個(gè)冒泡函數(shù)
?????? function stopPropagation(event)
?????? {
?????????? event=event||window.event;
?????????? if(event.stopPropagation)
??????????????? event.stopPropagation();
?????????? else
??????????????? event.cancelBubble=true;
?????? }
?}
?? </script>
</head>
<body>
?<div id="divselect">
????? <cite>請(qǐng)選擇分類(lèi)</cite>
????? <ul>
???????? <li id="li"><a href="javascript:;" selectid="1">ASP開(kāi)發(fā)</a></li>
???????? <li><a href="javascript:;" selectid="2">.NET開(kāi)發(fā)</a></li>
???????? <li><a href="javascript:;" selectid="3">PHP開(kāi)發(fā)</a></li>
???????? <li><a href="javascript:;" selectid="4">Javascript開(kāi)發(fā)</a></li>
???????? <li><a href="javascript:;" selectid="5">Java特效</a></li>
????? </ul>
??? </div>
</body>
</html>
2017-08-06
?document.onkeydown=function(event){
event = event||window.event;
event.preventDefault ? event.preventDefault():event.returnValue = false;?
if(event.keyCode==40){
......
這樣寫(xiě)就行了 阻止鍵盤(pán)原來(lái)的事件發(fā)生!
2015-06-28
函數(shù)最后加上 return false;