マウスをクリックしたときにカーソルがある場所にdivを配置しようとしています。したがって、e.PageX と e.pageY を使用すると、実際には div が意図したよりもはるかに下に配置されます。何か案は?
var mouseX = e.pageX;
var mouseY = e.pageY;
$("#moverdiv").css({'top':mouseY,'left':mouseX});
マウスをクリックしたときにカーソルがある場所にdivを配置しようとしています。したがって、e.PageX と e.pageY を使用すると、実際には div が意図したよりもはるかに下に配置されます。何か案は?
var mouseX = e.pageX;
var mouseY = e.pageY;
$("#moverdiv").css({'top':mouseY,'left':mouseX});
pageX の定義は次のとおりです。
pageX は、マウス イベントが発生したときのドキュメント全体に対するマウス ポインタの X 座標のピクセル単位の整数値です。このプロパティは、ページの水平スクロールを考慮に入れます。
この種のコードを入れると:
$(document.body).click(function(mouseEvent) {
$("#MyDiv").css({
'top': mouseEvent.pageY,
'left':mouseEvent.pageX
});
});
それは完全に機能します。
div が目的の位置にない場合は、DIV が本体とは異なる参照ポイント (ブラウザの左上隅とは異なる) を持っている可能性があるためです。
実際、絶対配置要素は最初の参照親を参照します。参照の親が見つからない場合、最終的な参照の親はbodyです。CSS プロパティ : position: relativeを持つ中間要素があるかもしれません。この CSS プロパティは、要素を配置の参照にし、シフトを誘発します。
これは私のために働いた.これを試してください:
<!DOCTYPE html>
<html>
<head>
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
$(document).click(function(e){
var mouseX = e.pageX;
var mouseY = e.pageY;
$("#moverdiv").css({'top':mouseY, 'left':mouseX});
});
});
</script>
<style type="text/css">
#moverdiv{
position: absolute;
top: 0px;
left: 0px;
background-color: #000;
width: 100px;
height: 100px;
}
</style>
</head>
<body>
<div id="moverdiv"></div>
</body>
</html>
そしてこれがデモです