看到getBoundingClientRect方法,是用phpstorm进行跳转的,跳转到原始文件中,居然提示我是@browser IE,@return TextRange
一下子就闷了,还好有google,找到了一篇 文章(不好意思,不是专业做前端的,对于这些函数所以都不太了解,也没有去看什么 w3cschool之类的教程)
找到了这篇 文章才知道:
/**
* 这原本是IE中获取页面中某个元素位置的方法 ,【相对于浏览器左上角】
* FF在3.0中也提供这个方法,在3.5还能获取元素高度和宽度属性
* IE中会比其他浏览器多出2个像素
* return{left,top,right,bottom,width,height}
*/
OK,我也不多介绍了,看一下原文中对于这一点是怎么解释的:
页面左上角由一个元素,紧贴浏览器的左边和上边,在除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

评论 (3)
if ($var)
和
if ($var === TRUE)
有时候结果会很意外的。
{
$url = explode('/', $url);
$keys = array_keys($url, '..');
foreach($keys as $k => $v)
{
array_splice($url, $v - ($k * 2 + 1), 2);
}
$url = implode('/', $url);
$url = str_replace('./', '', $url);
return $url;
}
$url = 'http://neatstudio.com/xxx/xxx/../0/abc.jpg';
echo my_realpath($url);