在页面显示浮动层时,IE、Firefox下都能显示正常,但Chrome下出现了浮动层永远显示在上面,经过仔细分析,发现Chrome对document.documentElement.scrollTop的识别会出现误差。不过加上document.body.scrollTop后,则显示正常。
由于document.documentElement.scrollTop和document.body.scrollTop在标准模式或者是奇怪模式下都只有一个会返回有效的值,所以都加上也不会有问题(看来上面的问题是Chrome可能把文档当作非标准文档来解析了)。
解决方案1:
if (document.documentElement && document.documentElement.scrollTop)
document.getElementById("poster").style.top = document.documentElement.scrollTop + "px";
else if (document.body)
document.getElementById("poster").style.top = document.body.scrollTop+"px";
解决方案2:
document.getElementById("poster").style.top = document.documentElement.scrollTop +document.body.scrollTop+ "px";