我遇到了一些非常奇怪的行为,并且在我测试过的每个浏览器中都不一致。
我有一个非常复杂的布局,但主要问题在于:
<div id="drop">
<div id="header"></div>
</div>
#drop
有position:absolute
和z-index:100
#header
有position:fixed; top:60px;
当我开始向下滚动时,Chrome 会忽略该position:fixed
规则。如果我从中删除上述两种样式中的任何一种#drop
,那么 Chrome 就会开始position:fixed
遵守规则。
无法让它在 Ubuntu Chrome 23.0.1271.97 上运行,并在 Mac Chrome 25.0.1364.99 上看到相同的行为。我的朋友使用的是 Ubuntu Chrome 25.0.1364.68 beta,它对他来说可以正常工作。我已经在 Firefox 上对其进行了测试,它有点工作(有其他症状)
有人听说过这个错误吗?或者任何人都可以复制它吗?
编辑
我将 openlayers 地图用作另一个 div,position:fixed
如果我删除该图层或至少将其更改为,display:none
那么这个奇怪的错误就会消失。
编辑
请注意,在存在此错误期间,如果我来回更改缩放级别,则位置会自行调整为正确的行为。对我来说,这表明 webkit 问题无法在滚动时执行某些内部回调函数。
另一个非常奇怪的事情是,我有几个链接,#header
如果我只是点击预期的位置,它们就会工作,即使 div 没有出现在那里。总的来说,我注意到只有渲染被破坏了。如果在任何时候我通过调整窗口大小或更改缩放或只是执行全选来强制浏览器重新渲染,那么标题栏会跳转到正确的位置,但不会保持固定。