看到getBoundingClientRect方法,是用phpstorm进行跳转的,跳转到原始文件中,居然提示我是@browser IE,@return TextRange
一下子就闷了,还好有google,找到了一篇 文章(不好意思,不是专业做前端的,对于这些函数所以都不太了解,也没有去看什么 w3cschool之类的教程)
找到了这篇 文章才知道:
http://younglab.blog.51cto.com/416652/386540
- /**
- * 这原本是IE中获取页面中某个元素位置的方法 ,【相对于浏览器左上角】
- * FF在3.0中也提供这个方法,在3.5还能获取元素高度和宽度属性
- * IE中会比其他浏览器多出2个像素
- * return{left,top,right,bottom,width,height}
- */
OK,我也不多介绍了,看一下原文中对于这一点是怎么解释的:
XML/HTML代码
- 页面左上角由一个元素,紧贴浏览器的左边和上边,在除IE外的浏览器,包括基于IE内核的搜狗浏览器(360垃圾浏览器及TT浏览器未测试)都能正确的获取到各个属性的值,而在IE中,每个值都会比正常值多出两个像素,例如,正常的left值为0,在IE中为2;
- 这是因为IE中document.documentElement.clientTop并不为0(尽管已设置html、body的margin和padding为0),所以在IE中获得的值要减去document.documentElement.clientTop的值。
更多的资料还是去看原文吧:http://younglab.blog.51cto.com/416652/386540