Habilitar posicionamiento fijo real en los navegadores de Android de Samsung

El navegador de Android, desde 2.2, admite el posicionamiento fijo, al menos en ciertas circunstancias, como cuando se desactiva la escala. Tengo un simple archivo HTML sin JS, pero el posicionamiento fijo en tres teléfonos Samsung que he probado es simplemente incorrecto. En lugar de un verdadero posicionamiento fijo, el encabezado se desplaza fuera de la vista y luego se vuelve a colocar en su lugar después de realizar el desplazamiento.

Esto no sucede en el emulador de SDK de Android para ninguna configuración que he probado (2.2, 2.3, 2.3 x86, 4.0.4). Tampoco sucede cuando se utiliza el WebView en una aplicación en los teléfonos Samsung: en esos casos el posicionamiento funciona como se esperaba.

¿Hay una manera de hacer que el navegador de Samsung "stock" utilice un posicionamiento fijo real?

He probado: 1. Samsung Galaxy 551, Android 2.2 2. Samsung Galaxy S, Android 2.3 3. Samsung Galaxy S II, Android 2.3

Código de muestra:

<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> 

El comportamiento esperado es que el encabezado gris llena la parte superior de la pantalla y se mantiene puesto no importa cuánto se desplaza. En los navegadores Android de Samsung parece que se desplaza hacia fuera de la vista y luego vuelve a aparecer en su lugar una vez que se hace el desplazamiento, como si el posicionamiento fijo se simula con Javascript, lo cual no es así.

Editar A juzgar por los comentarios y las "respuestas" parece que tal vez no estaba claro en lo que necesito. Estoy buscando una meta etiqueta o css regla / hack o javascript toggle que apaga Samsung roto de fijación de posicionamiento y se convierte en el navegador de Android de trabajo de fijación de posicionamiento. No estoy buscando una solución de Javascript que agrega roto de posicionamiento fijo a un navegador que no tiene ningún tipo de apoyo; El Samsung de fijación de posicionamiento que ya, sólo parece estúpido.

Tal vez podría considerar un enfoque diferente que no requiere posicionamiento fijo …

Añada desplazamiento al elemento de párrafo en lugar del elemento de cuerpo (predeterminado). A continuación, puede colocar el elemento de párrafo justo debajo del encabezado. Esto asegurará que el encabezado siempre se muestre en la parte superior de la página y que le permita desplazarse por el texto del párrafo.

 h1 { height: 20px; } p { position: absolute; top: 20px; left: 0px; right: 0px; bottom: 0px; overflow-y: auto; } 

Creo que la mejor manera para Android 2.2 navegador implementar javascript.

Puede encontrar más información a través de este enlace. Se trata de posicionamiento fijo en todos los navegadores móviles.

http://bradfrostweb.com/blog/mobile/fixed-position/

En su comentario al artículo de Brad Frost, Matthew Holloway sugiere una solución a lo largo de las líneas de la respuesta de Anita Foley, pero con un polyfill para el desbordamiento: auto, donde no se soporta. Compruébelo aquí:

http://bradfrostweb.com/blog/mobile/fixed-position/

No es el navegador Android de Samsung roto, es Android 2.2 que tiene el apoyo roto. En general, como usted puede saber posición: fijo fue y en algunos casos sigue siendo bastante roto en muchos dispositivos móviles / sistemas.

Para responder a su pregunta, no hay "toggle o meta tag" que "activará el navegador de Android de trabajo de fijación de posicionamiento". Si un navegador no tiene soporte de algo, entonces no hay "toggle" para "cambiar". No es una característica.

De lo contrario, puede usar http://cubiq.org/iscroll-4 que lo emula.

(Editar: algunos hechos)

  1. Según http://caniuse.com/#search=position:fixed Android 2.2 y Android 2.3 tienen PARCIAL y no apoyo total de la posición: fijo. (Apoyo parcial parece soporte buggy)
  2. Un simulador de Android no es y nunca será idéntico a un navegador nativo de Android, tanto como IETester por ejemplo no es lo mismo que IE nativo (hay diferencias)
  3. Motorola ATRIX 4G no tiene Android 2.2 pero Android 2.3 ( http://www.motorola.com/us/consumers/MOTOROLA-ATRIX%E2%84%A2-4G/72112,en_US,pd.html?selectedTab=tab- 2 & cgid = teléfonos móviles # tab )

Usted está sugiriendo que SAMSUNG introduce un hack o mod de propiedad que rompe el apoyo de otra manera de trabajo de la posición fijada en el navegador de Android. Esto parece muy poco probable, independientemente de los 3 puntos anteriores.

La respuesta es realmente simple: hay apoyo parcial (buggy) y su única solución es utilizar una biblioteca de javascript que reemplaza o "corrige" el agujero.

  • En el enlace del navegador de Android no siempre se ejecuta onClick causando el foco en su lugar
  • Cordova: No se puede copiar el archivo en Android usando Cordova
  • Android :: Webview elimina la barra de desplazamiento de un DIV
  • ¿Qué hace -webkit-text-size-adjust?
  • Ajuste el tamaño de fuente de Android WebView
  • WebKit / WebView toque / onclick resaltado por defecto (Android Ice Cream Sandwich)
  • Cómo simular: css activa pseudo clase en android en elementos no-link?
  • ¿Incluyendo la versión webkit utilizada en el navegador Android?
  • El navegador Droid causa estragos en mi sitio
  • ¿Qué eventos de DOM están disponibles para WebKit en Android?
  • ¿Qué hacen exactamente setUseWideViewPort () y setLoadWithOverviewMode ()?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.