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


Posted in Javascript onSeptember 08, 2010

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>
Javascript 相关文章推荐
javascript下过滤数组重复值的代码
Sep 10 Javascript
ImageFlow可鼠标控制图片滚动
Jan 30 Javascript
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
May 04 Javascript
转换字符串为json对象的方法详解
Nov 29 Javascript
javascript实现倒计时N秒后网页自动跳转代码
Dec 11 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
Jul 31 Javascript
理解js对象继承的N种模式
Jan 25 Javascript
JS显示日历和天气的方法
Mar 01 Javascript
vue.js 中使用(...)运算符报错的解决方法
Aug 09 Javascript
nuxt中使用路由守卫的方法步骤
Jan 27 Javascript
浏览器JavaScript调试功能无法使用解决方案
Sep 18 Javascript
Vue 的 v-model用法实例
Nov 23 Vue.js
javascript循环变量注册dom事件 之强大的闭包
Sep 08 #Javascript
Javascript的一种模块模式
Sep 08 #Javascript
jQeury淡入淡出需要注意的问题
Sep 08 #Javascript
jQuery之浮动窗口实现代码(两种方法)
Sep 08 #Javascript
Jquery ThickBox插件使用心得(不建议使用)
Sep 08 #Javascript
jquery的Tooltip插件 qtip使用详细说明
Sep 08 #Javascript
jquery的Theme和Theme Switcher使用小结
Sep 08 #Javascript
You might like
PHP iconv 函数转gb2312的bug解决方法
2009/10/11 PHP
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
Laravel 5框架学习之Blade 简介
2015/04/08 PHP
phpstudy2020搭建站点的实现示例
2020/10/30 PHP
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
2010/03/27 Javascript
javascript克隆对象深度介绍
2012/11/20 Javascript
js识别不同浏览器基于userAgent做判断
2014/07/29 Javascript
推荐4个原生javascript常用的函数
2015/01/12 Javascript
简易的投票系统以及js刷票思路和方法
2015/04/07 Javascript
JavaScript动态创建div等元素实例讲解
2016/01/06 Javascript
js定义类的几种方法(推荐)
2016/06/08 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
结合mint-ui移动端下拉加载实践方法总结
2017/11/08 Javascript
jQuery实现所有验证通过方可提交的表单验证
2017/11/21 jQuery
vue获取当前激活路由的方法
2018/03/17 Javascript
JS实现的透明度渐变动画效果示例
2018/04/28 Javascript
vue中关闭eslint的方法分析
2018/08/04 Javascript
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
2018/11/21 Javascript
关于layui 下拉列表的change事件详解
2019/09/20 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
[42:34]VP vs VG 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
利用python写个下载teahour音频的小脚本
2017/05/08 Python
如何用itertools解决无序排列组合的问题
2017/05/18 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
Python tkinter三种布局实例详解
2020/01/06 Python
Python表达式的优先级详解
2020/02/18 Python
如何让python的运行速度得到提升
2020/07/08 Python
使用HTML5捕捉音频与视频信息概述及实例
2018/08/22 HTML / CSS
html5视频常用API接口的实战示例
2020/03/20 HTML / CSS
优秀辅导员事迹材料
2014/02/16 职场文书
2015感人爱情寄语
2015/02/26 职场文书
女性健康讲座主持词
2015/07/04 职场文书
python基础之while循环语句的使用
2021/04/20 Python
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python