ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptをベースに右クリックメニューとドラッグアンドドロップ機能を実装

JavaScriptをベースに右クリックメニューとドラッグアンドドロップ機能を実装

高洛峰
高洛峰オリジナル
2016-12-03 16:53:031759ブラウズ

以下では、まず 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 は、ウィンドウに対するマウス ポイントの座標を参照します。

りー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。