谷歌 offsetWidth获取值失常和scrollTop为0

今天在做一个项目中碰到了一个很奇怪的问题就是通过offsetWidth或者clientWidth以及scrollWidth获取一个元素的宽度,所显示的值在谷歌中(遨游也一样他们一个内核)很怪异,后来仔细的测试了下才发现导致这个原因是因为这个元素没定义宽度,同时它里面包含着一个图片元素,也就是它的宽度是这个图片所撑开赋予的,后来查了下相关资料才知道对于图片的宽度谷歌获取好像需要onload,无奈下只能在这个元素中定义宽度解决了此问题。

同时对于谷歌浏览器,通过document.documentElement||document.body所获取的scrollTop的值一直为0,后来想了想,这样写谷歌对此2者都是兼容的也就获取到的值为0了(因为谷歌是通过document.body获取的,但是它对document.documentElement也是支持的),因此只需要将document.documentElement.scrollTop+document.body.scrollTop相加,因为在标准模式或者是奇怪模式下都只有一个会返回有效的值这样就会得到所想要的,当然用Math.max等等也是可以的

 

 

 

 

 

 

 

 

你可能感兴趣的:(浏览器,测试)