您好,欢迎访问一九零五行业门户网

获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[_javascript技巧

问题:
如何取到页面中任意某个html元素与body元素之间的偏移距离?
offsettop和offsetleft 这两个属性,ie 、opera和firefox对它俩的解释存在差异:
ie5.0+ 、opera8.0+: offsettop和offsetleft 都是相对父级元素
firefox1.06: offsettop和offsetleft 都是相对于body元素
因此:
(1)在ff下直接使用offsettop和offsetleft,就可以取到页面中任意某个html元素与body元素之间的偏移距离;
(2)在ie、opera下则比较麻烦:
需要首先取到该html元素与body元素之间所有html元素,计算各自的offsettop和offsetleft,然后再累加。
即:从该html元素开始,遍历至body,在遍历的过程中,如果某个html元素的css设置了borderwidth的话,则borderwidth不是算在offsettop和offsetleft内的--因此在遍历的过程中,还需要累加上:
obj.currentstyle.borderleftwidth、obj.currentstyle.bordertopwidth
下面这段测试代码已经解决上述问题,兼容ie5、ff1,但在opera8下无效
实例代码:
nbsp;html public -//w3c//dtd xhtml 1.0 transitional//en http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd>
代码实例:获取任意html元素与body之间的偏移距离 offsettop、offsetleft
此色块高:100px;
测试
测试
测试
测试
测试
其它类似信息

推荐信息