zl程序教程

您现在的位置是:首页 >  前端

当前栏目

JavaScript与Div对层定位和移动获得坐标的实现代码

JavaScript定位代码 实现 移动 获得 div 坐标
2023-06-13 09:14:24 时间
1:移动图层获得点的x轴y轴坐标,从而进行绝对定位(注意:竖拉框会影响x轴y轴坐标值)
复制代码代码如下:

varx,y,z,down=false,obj
functioninit(){
obj=event.srcElement//事件触发对象
obj.setCapture()//设置属于当前对象的鼠标捕捉
z=obj.style.zIndex//获取对象的z轴坐标值
//设置对象的z轴坐标值为100,确保当前层显示在最前面
obj.style.zIndex=100
x=event.offsetX//获取鼠标指针位置相对于触发事件的对象的X坐标
y=event.offsetY//获取鼠标指针位置相对于触发事件的对象的Y坐标
down=true//布尔值,判断鼠标是否已按下,true为按下,false为未按下
}
functionmoveit(){
//判断鼠标已被按下且onmouseover和onmousedown事件发生在同一对象上
if(down&&event.srcElement==obj){
with(obj.style){
/*设置对象的X坐标值为文档在X轴方向上的滚动距离加上当前鼠标指针相当于文档对象的X坐标值减鼠标按下时指针位置相对于触发事件的对象的X坐标*/
//posLeft=event.x-x;
posLeft=document.body.scrollLeft+event.x-x;
/*设置对象的Y坐标值为文档在Y轴方向上的滚动距离加上当前鼠标指针相当于文档对象的Y坐标值减鼠标按下时指针位置相对于触发事件的对象的Y坐标*/
//posTop=event.y-y;
posTop=document.body.scrollTop+event.y-y;
window.status="posLeft="+posLeft+",posTop="+posTop;
window.status=window.status+"clientX="+event.clientX+"clientY="+event.clientY+"scrollLeft="+document.body.scrollLeft+"scrollTop="+document.body.scrollTop+",event.y="+event.y+",event.x"+event.x;
}
}
}
functionstopdrag(){
//onmouseup事件触发时说明鼠标已经松开,所以设置down变量值为false
down=false
obj.style.zIndex=z//还原对象的Z轴坐标值
obj.releaseCapture()//释放当前对象的鼠标捕捉
//alert("X:"+obj.style.left+";Y:"+obj.style.top);
}


2:为了使图层在不同分辨率浏览器上显示同样的效果,我们需要对图层定位设置

第一步:对最外层进行相对定位

复制代码代码如下:

<divid="t"style="position:relative;top:0px;left:0px;"></div>


第二步:在相对里面进行决对定位(这样图层就不会随着分辨率的改变而变形)
复制代码代码如下:
<divid="t"style="position:relative;top:0px;left:0px;">
<divid="tt"style="position:absolute;top:9px;left:317px;">
<IMGid="hong"SRC="main/1.jpg"WIDTH="8"HEIGHT="8"BORDER="0"
ALT=""/>
</div>
<div>省略</div>
<div>省略</div>
<div>省略</div>
<div>省略</div>
<div>省略</div>
<div>省略</div>
<div>省略</div>
<div>省略</div>
<div>省略</div>

//===================(层移动方法调用)=============================
复制代码代码如下:
<divonmousedown=init()onmousemove=moveit()
onmouseup=stopdrag()
style="position:absolute;left:60;top:190;width:5;height:5;z-index:99;;border:1pxsolid#000000;">
D
</div>
</div>