检测是否支持position:fixed

不喜欢浏览器嗅探,模仿IE6的UA的浏览器太多了

/*
* 使用如下结构:
* <div style="position: absolute; top: 200px;"> <== outer
* <div style="position: fixed; top: 100px;"></div> <== inner
* </div>
*
* 如果浏览器支持fixed,由于fixed是相对于document定位的,因此无论body样式如何,top始终是100px
* 如果浏览器不支持fixed,被解释为static,则inner和top值无效,计算出来的inner的绝对top与outer相同
*/
var outer = document.createElement('div'),
inner
= document.createElement('div'),
result
= true;

outer.style.position
= 'absolute';
outer.style.top
= '200px';

inner.style.position
= 'fixed';
inner.style.top
= '100px';

outer.appendChild(inner);
document.body.appendChild(outer);

if (inner.getBoundingClientRect && 
inner.getBoundingClientRect().top == outer.getBoundingClientRect().top) {
result
= false;
}
posted @ 2011-02-17 17:32  Gray Zhang  阅读(834)  评论(0编辑  收藏  举报