我创建如果position:fixed
在浏览器确实是支持的另一种检查。它创建固定的div并尝试滚动并检查div的位置是否改变。
function isPositionFixedSupported(){
var el = jQuery("<div id='fixed_test' style='position:fixed;top:1px;width:1px;height:1px;'></div>");
el.appendTo("body");
var prevScrollTop = jQuery(document).scrollTop();
var expectedResult = 1+prevScrollTop;
var scrollChanged = false;
//simulate scrolling
if (prevScrollTop === 0) {
window.scrollTo(0, 1);
expectedResult = 2;
scrollChanged = true;
}
//check position of div
suppoorted = (el.offset().top === expectedResult);
if (scrollChanged) {
window.scrollTo(0, prevScrollTop);
}
el.remove();
return suppoorted;
}
此功能已在Firefox 22,Chrome 28,IE 7-10,Android Browser 2.3中测试。
这很伤心......但非常感谢参考! – 2012-04-05 10:24:17