JS之 IE 奇葩的offsetTop和offsetLeft
2013-01-21 22:24
316 查看
我想在做很多网页特效的时候,你都想要准确地得到某个element的body的相对位置。但奇葩的IE可不是这么想的,得到的offsetParent往往不是body,所以囧吧!!!
但是,在这个人才辈出的年代,总是有人会想出很nice的方法去解决这个问题。
IE对offsetTop和offsetLeft的理解方式让人费解,往往指相对于父亲container的x和y。所以,IE里面要得到准确的body X和Y,必须用累计的方式:
但是,在这个人才辈出的年代,总是有人会想出很nice的方法去解决这个问题。
IE对offsetTop和offsetLeft的理解方式让人费解,往往指相对于父亲container的x和y。所以,IE里面要得到准确的body X和Y,必须用累计的方式:
function getAbsoluteOffsetTop(obj) { var y = obj.offsetTop; while (obj = obj.offsetParent) y += obj.offsetTop; return y; }
function getAbsoluteOffsetLeft(obj) { var x = obj.offsetLeft; while (obj = obj.offsetParent) x += obj.offsetLeft; return x; }
picLayer.style.top=parseInt(getAbsoluteOffsetTop(picA))+36+"px"; picLayer.style.left=parseInt(getAbsoluteOffsetLeft(picA))-15+"px";
相关文章推荐
- js中scrollLeft、scrollWidth、offsetTop等相关位置属性的理解(转)
- 【转】js中offsetLeft,offsetTop,offsetParent详解
- JS: style.top style.left 在IE和FireFox的区别
- js中的offsetParent,offsetLeft,offsetTop及jquery的offset(),position()比较
- 获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
- js中offsetLeft/offsetTop与jq中offset().left/offset().top的区别
- js的offsetLeft,scrollLeft,offsetTop,scrollTop等等的用法
- JS中offsetTop、clientTop、scrollTop、offsetTop、style.left、styleTop各属性介绍
- 获取offsetTop和offsetLeft值的js代码(兼容)
- 人物可以移动实例js--offset.top/left
- 获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
- JS属性 ClientTop,scrollTop,offsetWidth,ClientWidth,clientLeft,padding,border,top,margin区别
- js中offsetLeft,offsetTop,offsetParent计算边距方法
- IE9下,原生JS设置元素left和top属性为数值不生效
- 获取offsetTop和offsetLeft值的js代码(兼容)
- JS基础篇--JS获取元素的宽高以及offsetTop,offsetLeft等的属性值
- Js中 关于top、clientTop、scrollTop、offsetTop等
- Javascript offsetTop 和offseLeft帶給我的迷惑
- offsetTop、offsetLeft、offsetWidth、offsetHeight、style中的样式
- JS中offsetTop、clientTop、scrollTop、offsetTop各属性介绍