ホームページ > 記事 > ウェブフロントエンド > JavaScriptをベースに右クリックメニューとドラッグアンドドロップ機能を実装
以下では、まず js で実装される右クリック メニュー関数を紹介します。具体的な詳細は次のとおりです。
この章で解決される問題
1. 右クリック メニュー関数のコードを実装します。
2. デフォルトイベントの実際の適用を防止します。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>右键菜单</title> <style type="text/css"> #menu { position: fixed; left:0; top:0; width:200px; height: 400px; background-color: blue; display: none; } </style> </head> <body> <div id="menu"> </div> <script type="text/javascript"> var menu = document.getElementById("menu"); document.oncontextmenu = function(e) { var e = e || window.event; //鼠标点的坐标 var oX = e.clientX; var oY = e.clientY; //菜单出现后的位置 menu.style.display = "block"; menu.style.left = oX + "px"; menu.style.top = oY + "px"; //阻止浏览器默认事件 return false;//一般点击右键会出现浏览器默认的右键菜单,写了这句代码就可以阻止该默认事件。 } document.onclick = function(e) { var e = e || window.event; menu.style.display = "none" } menu.onclick = function(e) { var e = e || window.event; e.cancelBubble = true; } // document.addEventListener("contextmenu",function(e){ // var e = e || window.event; // e.preventDefault(); // alert("menu"); // },false) </script> </body> </html>
さて、上記のコードの詳細は、js で実装された右クリック メニュー関数です。次に、JSのドラッグ関数のコード解析を紹介します
この章で解決される問題
1. Webページにドラッグ関数を実装する方法。
2. document.documentElement と document.body の違い。
document.documentElement.clientWidth は、HTML ドキュメント全体の幅、つまり document.body.clientWidth の幅を指します。この 2 つは同じではありません。コンソールの console.log(document.documentElement) および console.log(document.body) を通じてテストできます。
3. getBoundingClientRect().left と offsetLeft の違い。
getBoundingClientRect() は、要素の左、上、右、下を取得するために使用されます。 offset は親を基準にして左と上を取得します。 getBoundingClientRect() は、ウィンドウを基準にして左、上、右、下を取得します。
4. e.clientX は、ウィンドウに対するマウス ポイントの座標を参照します。
りー