我整天都在搞这个,似乎找不到解决办法。
我有一个简单的 ul,它充当具有以下 css 的固定标头:
body {
width: 100%;
height: 100%;
min-height: 100%;
}
.stream .header {
position: fixed;
width: 100%;
height: 41px;
top: 0;
right: 0;
left: 0;
z-index: 10;
margin-bottom: 10px;
list-style: none;
}
标题下方的内容具有以下css:
.stream .stream-content {
position: relative;
padding-top: 41px;
-webkit-transform: translate3d(0, 0, 0);
}
当页面在 ios7 mobile safari 中滚动时,会发生以下情况:
首先向下滚动——标题随着页面顶部移动,直到滚动完成。
第二次向下滚动——标题完全消失,滚动完成后不会重新出现。
向上滚动(标题仍然可见) - 标题完全消失,并且在到达页面顶部时不会重新出现。
向上滚动(隐藏标题)- 标题保持隐藏,到达页面顶部时不会重新出现。
向上滚动(已在页面顶部隐藏标题)- 标题重新出现并正常运行,直到页面向下滚动两次。
我在使用 iOS6 移动 safari 时没有遇到此问题,因此该问题似乎与新的 url 栏在滚动时调整大小有关。
还有其他人有类似的问题吗?欢迎提出建议。
更新:
因此,在标头的父级(.stream)上删除 -webkit-transform3d() 似乎可以解决问题,因此父级 div 的呈现方式和内部的标头必须存在冲突。
不过仍在寻找解决方法。