原理很簡單,就是右擊滑鼠(oncontextmenu事件)return false阻止預設右鍵菜單,之後顯示自訂的右鍵菜單,菜單顯示位置由事件來源的clientX和clientY計算得出。
[html] view plain copy print ? <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>拖拽+自訂右鍵菜單</title> <style type="text/css"> body{ margin:0; padding:0} #ul1{ width:130px; height:120px; padding:10px 3px; background:#fff; border:#ACA899 1px solid; display:none; position:absolute; left:0;top:0;} #ul1 li{ width:130px; height:28px; line-height:28px; font-size:14px; border-bottom:#ACA899 1px dashed; text-align:center; list-style:none} #ul1 li:hover{ background:#316AC5} </style> <script type="text/javascript"> window.onload=function() { var ul=document.getElementById("ul1") document.oncontextmenu=function(ev) { var ev=ev||window.event var l=ev.clientX var t=ev.clientY ul.style.display="block" ul.style.left=l+'px' ul.style.top=t-16+'px' return false; } document.onclick=function() { ul.style.display="none" } } </script> </head> <body> <ul id="ul1"> <li>自訂右鍵菜單</li>