Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 放置前找到被拖动对象的位置_Javascript_Html - Fatal编程技术网

Javascript 放置前找到被拖动对象的位置

Javascript 放置前找到被拖动对象的位置,javascript,html,Javascript,Html,使用Javascript,我希望使用事件拖动来重新定位对象 跟踪鼠标移动的距离是在落下之前获取对象位置的唯一方法吗 在本例中,没有“放置位置”,因为我将根据用户拖动鼠标的位置简单地更新对象的位置 谢谢 跨浏览器兼容性是一个问题,因此代码有点古怪。此代码应适用于任何浏览器。 这是基于mouseup事件的。您可以改用mousemove事件。 如果将事件侦听器添加到窗口中,它将无法在IE8及更早版本中工作。 <!DOCTYPE html><html lang="en"><

使用Javascript,我希望使用事件拖动来重新定位对象

跟踪鼠标移动的距离是在落下之前获取对象位置的唯一方法吗

在本例中,没有“放置位置”,因为我将根据用户拖动鼠标的位置简单地更新对象的位置


谢谢

跨浏览器兼容性是一个问题,因此代码有点古怪。此代码应适用于任何浏览器。

这是基于mouseup事件的。
您可以改用mousemove事件。

如果将事件侦听器添加到窗口中,它将无法在IE8及更早版本中工作。

<!DOCTYPE html><html lang="en"><head><title>Floor Plan</title>
<style type="text/css">
#page{width:100%;padding:0;}
</style>
<body><div id="page" onmouseup="fpos(event)">
</div></body></html>
EOT;
ob_flush();
echo <<<EOT
<script type="text/javascript">//<![CDATA[
var fp = document.getElementById('fp');
var ptr = document.getElementById('point');
function fpos(e) {
  var x = 0;
  var y = 0;
  e = e || window.event;
  if (e.pageX || e.pageY){
    x = e.pageX;
    y = e.pageY;
  }
  else if (e.clientX || e.clientY)   {
    x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
    y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
  }
  var offSet = findPos(fp);
  x -=  offSet[0];
  y -=  offSet[1];
  find(x,y);
}
function findPos(obj) {
var currentLeft = currentTop = 0;
if (obj.offsetParent) {
do {
  currentLeft += obj.offsetLeft;
  currentTop += obj.offsetTop;
} while (obj = obj.offsetParent);
return [currentLeft,currentTop];
}}
楼层平面图
#页面{宽度:100%;填充:0;}
EOT;
ob_flush();
回响