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