JavaScript与Div对层定位和移动获得坐标的实现代码
来源:互联网 发布:cl邀请码淘宝怎么搜 编辑:程序博客网 时间:2024/05/01 09:12
1:移动图层 获得点的x轴y轴坐标,从而进行绝对定位(注意:竖拉框会影响 x 轴 y 轴坐标值)
var x,y,z,down=false,obj
function init(){
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为未按下
}
function moveit(){
//判断鼠标已被按下且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;
}
}
}
function stopdrag(){
//onmouseup事件触发时说明鼠标已经松开,所以设置down变量值为false
down=false
obj.style.zIndex=z //还原对象的Z轴坐标值
obj.releaseCapture() //释放当前对象的鼠标捕捉
//alert("X:"+obj.style.left+";Y:"+obj.style.top);
}
2:为了使图层在不同分辨率浏览器上显示同样的效果,我们需要对图层定位设置
第一步:对最外层 进行相对定位
<div id="t" style="position:relative;top:0px;left:0px;"> </div>
第二步:在相对里面进行决对定位(这样图层就不会随着分辨率的改变而变形)
<div id="t" style="position:relative;top:0px;left:0px;">
<div id="tt" style="position:absolute;top:9px;left:317px;">
<IMG id="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>
//===================(层移动方法调用)=============================
<div onmousedown=init() onmousemove=moveit()
onmouseup=stopdrag()
style="position:absolute;left:60;top:190;width:5;height:5;z-index:99;;border:1px solid #000000;">
D
</div>
</div>
复制代码代码如下:
var x,y,z,down=false,obj
function init(){
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为未按下
}
function moveit(){
//判断鼠标已被按下且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;
}
}
}
function stopdrag(){
//onmouseup事件触发时说明鼠标已经松开,所以设置down变量值为false
down=false
obj.style.zIndex=z //还原对象的Z轴坐标值
obj.releaseCapture() //释放当前对象的鼠标捕捉
//alert("X:"+obj.style.left+";Y:"+obj.style.top);
}
2:为了使图层在不同分辨率浏览器上显示同样的效果,我们需要对图层定位设置
第一步:对最外层 进行相对定位
复制代码代码如下:
<div id="t" style="position:relative;top:0px;left:0px;"> </div>
第二步:在相对里面进行决对定位(这样图层就不会随着分辨率的改变而变形)
复制代码代码如下:
<div id="t" style="position:relative;top:0px;left:0px;">
<div id="tt" style="position:absolute;top:9px;left:317px;">
<IMG id="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>
//===================(层移动方法调用)=============================
复制代码代码如下:
<div onmousedown=init() onmousemove=moveit()
onmouseup=stopdrag()
style="position:absolute;left:60;top:190;width:5;height:5;z-index:99;;border:1px solid #000000;">
D
</div>
</div>
- JavaScript与Div对层定位和移动获得坐标的实现代码
- javascript实现div层移动的减速效果
- JavaScript实现DIV层的隐藏与显示
- javascript实现层div的显示和隐藏效果
- 简单的,通过代码,实现光标的移动和定位
- div父层与子层之间的定位
- JavaScript and CSS 定位与浮动对的实现
- js实现层的移动与上下层的切换,模仿他人代码 --firefox无法实现
- 实现层移动(div )
- 随浏览器滚动条移动的DIV层的代码
- CSS相对定位实现DIV层的投影(阴影)效果
- DIV 弹出层例子 ----实现层移动
- JavaScript拖动层Div代码
- JavaScript层移动关键代码
- DIV CSS层内层的绝对和相对定位案例
- 实现div层的弹出与拖动
- 利用javascript移动div层-javascript 拖动层:
- 可移动的DIV层
- Mysql 常用命令备忘
- C++Qt 统计运行时间
- java socket client to python server with utf-8
- linux下安装RTL8188CE网卡驱动(Mercury MW150U)
- javac手工编译整个工程
- JavaScript与Div对层定位和移动获得坐标的实现代码
- Vertu手机决定采用Android系统
- 关于linux regulator dirver(1) fixed regulator
- Cocos2d-x 解决闪屏、闪烁问题
- NYOJ 600 花儿朵朵 树状数组
- NSNumber与NSInteger的区别
- what a shame!
- javascript设置DIV位置
- java.lang.OutOfMemoryError: PermGen space