該效果主要有三點,一是對重寫的下拉菜單的隱藏和顯示;二是屏蔽默認的鼠標右鍵事件;三是鼠標左鍵點擊頁面下拉菜單隱藏。
不多說,上html代碼:
1 <ul id="wrapper"> 2 <li><a>一級</a></li> 3 <li><a>二級</a></li> 4 <li><a>三級</a></li> 5 </ul>
JavaScript代碼如下:
1 window.onload = function(){ 2 var wrap = document.getElementById('wrapper'); 3 wrap.style.display = 'none'; 4 var li = document.getElementsByTagName('li'); 5 6 for(var i=0;i<li.length;i++){ 7 li.onmouseover = function(){ 8 this.classname = "active"; 9 } 10 li.onmouseout = function(){ 11 this.classname = ""; 12 } 13 } 14 15 document.oncontextmenu = function(e){ 16 var e = event || window.event; 17 wrap.style.display = "block"; 18 wrap.style.left = e.clientX+'px'; 19 wrap.style.right = e.clientY +'px'; 20 return false;//取消右鍵點擊的默認事件 21 }; 22 document.onclick= function(){ 23 wrap.style.display = 'block'; 24 } 25 }
該段代碼最關鍵的地方,就是在oncontext事件中返回false,從而達到取消默認事件的效果。
