js各浏览器兼容取的元素的位置X坐标 Y坐标
2013-09-24 15:47
155 查看
JS code:
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 = ; } 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]}; }
相关文章推荐
- js获取鼠标坐标位置兼容多个浏览器
- js获取鼠标坐标位置兼容多个浏览器
- 多浏览器兼容的获取元素和鼠标的位置的js代码
- JS获取网页窗口大小、浏览器窗口大小、页面元素位置
- Js获取元素在页面里的坐标位置和宽高
- 取得窗口大小和窗口位置-兼容所有浏览器的js代码
- js获取点击事件的位置,兼容主流浏览器
- js获取页面元素位置函数(浏览器兼容)
- js获得网页中某元素的坐标位置
- js获取元素在浏览器中的绝对位置
- 用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
- js获取鼠标位置杂谈附多浏览器兼容代码
- 获取页面元素的滚动位置,兼容各浏览器
- 兼容各大浏览器的js 数组删除元素方法方法
- 通过js为元素添加多项样式,浏览器全兼容写法
- 用 javascript 获取鼠标(光标)的坐标位置 兼容IE/Firefox等浏览器
- 获取元素的页面位置,兼容各浏览器
- JS获取各种高度宽度、浏览器窗口滚动条的位置、元素的几何尺寸
- 元素随浏览器滚动条拉动而移动位置的JS效果