<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>无标题文档</title> </head> <body>
<script language="javascript">
var x,y,z,down=false,obj f
unction init(){
obj=event.srcElement //事件触发对象
obj.setCapture() //设置属于当前对象的鼠标捕捉
z=obj.style.zIndex //获取对象的z轴坐标值 //设置对象的z轴坐标值为1000,确保当前层显示在最前面 obj.style.zIndex=1000 x=event.offsetX //获取鼠标指针位置相对于触发事件的对象的X坐标 y=event.offsetY //获取鼠标指针位置相对于触发事件的对象的Y坐标 down=true //布尔值,判断鼠标是否已按下,true为按下,false为未按下 } function moveit(){ //判断鼠标已被按下且onmouseover和onmousedown事件发生在同一对象上 if(down&&event.srcElement==obj) { with(obj.style) { /*设置对象的X坐标值为文档在X轴方向上的滚动距离加上当前鼠标指针相当于文档对象的X坐标值减鼠标按下时指针位置相对于触发事件的对象的X坐标*/ posLeft=document.body.scrollLeft+event.x-x /*设置对象的Y坐标值为文档在Y轴方向上的滚动距离加上当前鼠标指针相当于文档对象的Y坐标值减鼠标按下时指针位置相对于触发事件的对象的Y坐标*/ posTop=document.body.scrollTop+event.y-y } } } function stopdrag(){ //onmouseup事件触发时说明鼠标已经松开,所以设置down变量值为false down=false obj.style.zIndex=z //还原对象的Z轴坐标值 obj.releaseCapture() //释放当前对象的鼠标捕捉 } </script> <div οnmοusedοwn=init() οnmοusemοve=moveit() οnmοuseup=stopdrag() style="position:absolute;left:20;top:190;width:100;height:150;border:1px solid #000000;z-index:1;background:#eeeeee">Layer 1</div> <div οnmοusedοwn=init() οnmοusemοve=moveit() οnmοuseup=stopdrag() style="position:absolute;left:60;top:10;width:100;height:150;border:1px solid #000000;z-index:2;background:#eeeeee">Layer 2</div> <div οnmοusedοwn=init() οnmοusemοve=moveit() οnmοuseup=stopdrag() style="position:absolute;left:100;top:90;width:100;height:150;border:1px solid #000000;z-index:3;background:#eeeeee">Layer 3</div> </body></html>