js获取元素坐标方法
2010-11-03 13:27
826 查看
function getElementPos(elementId) { var ua = navigator.userAgent.toLowerCase(); var isOpera = (ua.indexOf('opera') != -1); var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof var el = document.getElementById(elementId); if(el.parentNode === null || el.style.display == 'none') { return false; } var parent = null; var pos = []; var box; if(el.getBoundingClientRect) //IE { box = el.getBoundingClientRect(); var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop); var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft); return {x:box.left + scrollLeft, y:box.top + scrollTop}; }else if(document.getBoxObjectFor) // gecko { box = document.getBoxObjectFor(el); var borderLeft = (el.style.borderLeftWidth)?parseInt(el.style.borderLeftWidth):0; var borderTop = (el.style.borderTopWidth)?parseInt(el.style.borderTopWidth):0; pos = [box.x - borderLeft, box.y - borderTop]; } else // safari & opera { pos = [el.offsetLeft, el.offsetTop]; parent = el.offsetParent; if (parent != el) { while (parent) { pos[0] += parent.offsetLeft; pos[1] += parent.offsetTop; parent = parent.offsetParent; } } if (ua.indexOf('opera') != -1 || ( ua.indexOf('safari') != -1 && el.style.position == 'absolute' )) { pos[0] -= document.body.offsetLeft; pos[1] -= document.body.offsetTop; } } if (el.parentNode) { parent = el.parentNode; } else { parent = null; } while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML') { // account for any scrolled ancestors pos[0] -= parent.scrollLeft; pos[1] -= parent.scrollTop; if (parent.parentNode) { parent = parent.parentNode; } else { parent = null; } } return {x:pos[0], y:pos[1]}; } 使用示例 var pos=getElementPos("divId"); alert("距左边距离"+ pos.x +",距上边距离"+pos.y);
相关文章推荐
- js获取元素到文档区域document的(横向、纵向)坐标的两种方法
- js获取元素到文档区域document的(横向、纵向)坐标的两种方法
- 原生js获取鼠标坐标方法全面讲解:clientX/Y,pageX/Y,offsetX/Y,layerX/Y,screenX/Y
- js获取DOM元素的方法
- Js/Jquery获取iframe中的元素 在Iframe中获取父窗体的元素方法
- Js/Jquery获取iframe中的元素 在Iframe中获取父窗体的元素方法
- js和jquery获取父级元素、子级元素、兄弟元素的方法
- JS获取元素方法
- JS获取鼠标坐标的实例方法
- js获取一个元素节点的子节点的方法(包括非文本节点)
- js 如何获取class的元素 以及创建方法getElementsByClassName
- js获取元素坐标
- js 获取元素宽度的几种方法
- 获取元素到文档区域document的坐标的两种方法总结
- 获取页面某一元素的绝对X,Y坐标,可以用offset()方法
- js 原生获取元素的一些方法
- JS获取数组中出现次数最多及第二多元素的方法
- js和jquery获取元素的方法
- js获取元素的偏移量offset简单方法(必看)
- js 获取元素所有兄弟节点的实现方法