Android 浏览器从 2.2 开始支持固定定位,至少在某些情况下,例如关闭缩放时。我有一个没有 JS 的简单 HTML 文件,但我试过的三部三星手机上的固定定位是完全错误的。标题不是真正的固定定位,而是滚动出视图,然后在滚动完成后弹回原位。
对于我测试过的任何配置(2.2、2.3、2.3 x86、4.0.4),Android SDK 模拟器上都不会发生这种情况。在三星手机上的应用程序中使用 WebView 时也不会发生这种情况:在这些情况下,定位按预期工作。
有没有办法让三星安卓“股票”浏览器使用真正的固定定位?
我测试过: 1.三星 Galaxy 551,Android 2.2 2.三星 Galaxy S,Android 2.3 3.三星 Galaxy S II,Android 2.3
示例代码:
<html>
<head>
<meta name="viewport" content="initial-scale=1.0,maximum-scale=1.0,user-scalable=no,width=device-width,height=device-height">
<style>
h1 { position: fixed; top: 0; left: 0; height: 32px; background-color: #CDCDCD; color: black; font-size: 32px; line-height: 32px; padding: 2px; width: 100%; margin: 0;}
p { margin-top: 36px; }
</style>
</head>
<body>
<h1>Header</h1>
<p>Long text goes here</p>
</body>
</html>
预期的行为是灰色标题填充屏幕顶部并保持不变,无论您滚动多少。在三星 Android 浏览器上,它似乎滚动到视野之外,然后在滚动完成后弹回原位,好像固定定位是使用 Javascript 模拟的,但事实并非如此。
编辑 从评论和“答案”来看,似乎我不清楚我需要什么。我正在寻找一个元标记或 css 规则/hack 或 javascript 切换来关闭三星损坏的固定定位并打开 Android 浏览器的工作固定定位。我不是在寻找一种 Javascript 解决方案,它将损坏的固定定位添加到没有任何支持的浏览器中;三星固定定位已经做到了,只是看起来很愚蠢。