当前位置:Gxlcms > 
JavaScript > 
获取任意Html元素与body之间的偏移距离offsetTop、offsetLeft(For:IE5+FF1)[_javascript技巧
                     
                    
                        获取任意Html元素与body之间的偏移距离offsetTop、offsetLeft(For:IE5+FF1)[_javascript技巧
                        
                            时间:2021-07-01 10:21:17
                            帮助过:7人阅读
							                        
                     
                    
                    问题: 
如何取到页面中任意某个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下无效 
实例代码:     
 代码实例:获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft