Avn*_*yin 3 html javascript internet-explorer
抱歉 - 我的坏 - 另一个脚本中有错误让我觉得这个功能有问题.** *但是嘿,如果你需要的话,你有一个很好的功能;)
谢谢你的帮助.
!~~
我有这个功能:
function findPos(obj) {
var curleft = curtop = 0;
if (obj && obj.offsetParent) {
do {
curleft += obj.offsetLeft;
curtop += obj.offsetTop;
} while (obj = obj.offsetParent);
}
return [curleft,curtop];
}
Run Code Online (Sandbox Code Playgroud)
在页面中查找和元素的实际位置.
但由于某种原因,它在IE中引发了我的错误; 如何修复此问题以跨浏览器工作?
这段独立的代码应该可以在没有框架的情况下在现代浏览器中获得偏移量.它使用的getBoundingClientRect方法:
function offset(element){
var body = document.body,
win = document.defaultView,
docElem = document.documentElement,
box = document.createElement('div');
box.style.paddingLeft = box.style.width = "1px";
body.appendChild(box);
var isBoxModel = box.offsetWidth == 2;
body.removeChild(box);
box = element.getBoundingClientRect();
var clientTop = docElem.clientTop || body.clientTop || 0,
clientLeft = docElem.clientLeft || body.clientLeft || 0,
scrollTop = win.pageYOffset || isBoxModel && docElem.scrollTop || body.scrollTop,
scrollLeft = win.pageXOffset || isBoxModel && docElem.scrollLeft || body.scrollLeft;
return {
top : box.top + scrollTop - clientTop,
left: box.left + scrollLeft - clientLeft};
}
Run Code Online (Sandbox Code Playgroud)