怎么动态获取div的坐标
没有设置Left值,什么属性也没有,只有onmouseover事件,在时间里想获取div的坐标怎么实现啊。...
没有设置Left值,什么属性也没有,只有onmouseover事件,在时间里想获取div的坐标怎么实现啊。
展开
4个回答
推荐于2016-06-05 · 知道合伙人互联网行家
关注
展开全部
Js代码
/***
* 获取div的坐标
* @param divObj
* @returns {{width: number, height: number, left: *, top: Window}}
*/
com.whuang.hsj.divCoordinate=function(divObj){
if(typeof divObj == 'string'){
divObj=com.whuang.hsj.$$id('divObj');
}
return {'width':divObj.offsetWidth,'height':divObj.offsetHeight,
'x':divObj.offsetLeft,'y':divObj.offsetTop,
'scrollLeft':com.whuang.hsj.getScroll().left,'scrollTop':com.whuang.hsj.getScroll().top};
}
// Cross browser gets the position of scroll
com.whuang.hsj.getScroll=function(){
return {
top:document.documentElement.scrollTop || document.body.scrollTop,
left:document.documentElement.scrollLeft || document.body.scrollLeft
}
}
展开全部
标准写法!其他写法都不靠谱!这种写法兼容各种浏览器
//el 节点对象
function getel(el){
var _t=0;
var _l=0;
if (document.documentElement.getBoundingClientRect){
var box = el.getBoundingClientRect();
var oDoc = el.ownerDocument;
//alert(navigator.appVersion);
if(navigator.userAgent.indexOf("MSIE 6.0") >= 0)
{
_t = box.top -2+ getScrollTop(oDoc);
_l = box.left -2+ getScrollLeft(oDoc);
}else
{
_t = box.top + getScrollTop(oDoc);
_l = box.left + getScrollLeft(oDoc);
}
}else{
while (el.offsetParent) {
_t += el.offsetTop;
_l += el.offsetLeft;
el = el.offsetParent;
}
}
return {top:_t,left:_l};
}
function getScrollTop(doc){
doc = doc || document;
return Math.max(doc.documentElement.scrollTop, doc.body.scrollTop);
}
function getScrollLeft(doc){
doc = doc || document;
return Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft);
}
//el 节点对象
function getel(el){
var _t=0;
var _l=0;
if (document.documentElement.getBoundingClientRect){
var box = el.getBoundingClientRect();
var oDoc = el.ownerDocument;
//alert(navigator.appVersion);
if(navigator.userAgent.indexOf("MSIE 6.0") >= 0)
{
_t = box.top -2+ getScrollTop(oDoc);
_l = box.left -2+ getScrollLeft(oDoc);
}else
{
_t = box.top + getScrollTop(oDoc);
_l = box.left + getScrollLeft(oDoc);
}
}else{
while (el.offsetParent) {
_t += el.offsetTop;
_l += el.offsetLeft;
el = el.offsetParent;
}
}
return {top:_t,left:_l};
}
function getScrollTop(doc){
doc = doc || document;
return Math.max(doc.documentElement.scrollTop, doc.body.scrollTop);
}
function getScrollLeft(doc){
doc = doc || document;
return Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
var top =document.getElementById('div1').top
var left = document.getElementById('div1').left
var left = document.getElementById('div1').left
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
html代码:
<div onmouseover="getAbsPoint(this)"></div>
script代码:
function getAbsPoint(e)
{
var x = e.offsetLeft, y = e.offsetTop;
while(e=e.offsetParent)
{
x += e.offsetLeft;
y += e.offsetTop;
}
alert("x:"+x+","+"y:"+y);
}
<div onmouseover="getAbsPoint(this)"></div>
script代码:
function getAbsPoint(e)
{
var x = e.offsetLeft, y = e.offsetTop;
while(e=e.offsetParent)
{
x += e.offsetLeft;
y += e.offsetTop;
}
alert("x:"+x+","+"y:"+y);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询