新iOS8上的固定位置错误

我有一个固定的标题和滑出侧边栏的网站。 使用纵向的iOS7时,固定标题在侧栏可见时保持固定,但在iOS8上,标题稍微向上推动,具体取决于滚动的距离。 我需要它保持固定。

看到这个jsbin: http ://jsbin.com/xuyevi/2/

主要部分是标题,侧边栏和主要内容。 标题固定在屏幕的顶部使用固定的位置,并有一个z-index,当你滚动时,它保持在内容之上。

侧边栏固定在屏幕的左侧,最初通过向左自身宽度平移而隐藏。

要打开侧边栏,标题,内容和侧边栏的每一个都按侧边栏的宽度向右平移。

同样,这在iOS7和所有其他支持translate3d的浏览器上都可以正常工作,并且在横向模式下甚至可以在iOS8中正常工作。 但在纵向的iOS8中,基于用户滚动的距离,固定标题将从屏幕上滑落。

此外,使用Safari检查器显示屏幕上的菜单项目偏离其预期的位置。 即在检查器中select一个元素,突出显示屏幕上与其被渲染的实际位置偏移的区域。

有没有其他人遇到这个? 任何人都知道解决?

编辑:检查员认为,固定位置标题正是它应该是,即使它实际上被推离屏幕。

晚会有点迟,但补充

 html, body { overflow-x: hidden; overflow-y: scroll; } 

将修复在iOS 8中偏移(例如,left:20px)的固定元素上的偏移滚动。

在iOS上,我使用了多个固定位置元素和一个CSSdynamic的canvas外导航栏,我也遇到类似的问题。 在一个长页面上,向上的“漂移”是一个阻碍因素,因为它最终增加到隐藏导航触发点的地步​​,导致无法closures菜单。 我试图广泛地find解决办法,并解决了一个解决方法:在animation之前回滚到顶部。 (#ocnTrigger是我的非canvas菜单触发器。)

 $('#ocnTrigger').click(function(){ $('body').animate({ scrollTop: 0 }, 0); }); 

我试图做类似的事情(见这里和这里 ),然后发现,苹果已经发布了技术说明,build议避免固定定位。 我发誓它在iOS 7中工作正常,但现在与iOS8不再“粘”。

这个问题似乎与设置这个元标记密切相关:

  <meta name="viewport" content="width=device-width"> 

另请参阅:将div修改为底部而不使用css位置