2011-02-12 10 views
7

http://workshop.wpcoder.com/daniel/tvexperts/tema webkit extraño con position: fixed

En Chrome, si hace clic en "Producción" y "Contacto" de la posición: cabecera fija desaparece, pero vuelve al mover el scroll. No tengo idea de cuál es la causa, y hasta ahora solo puedo detectarlo en Safari y Chrome, pero Firefox está bien, así que creo que es un error de webkit.

+0

Si desea solucionar esto, es posible que desee ocultar y mostrar el cuerpo completo con el fin de obligarlo a redibujar todo. – pimvdb

+0

No sé a qué te refieres, pimvdb. – Daniel

+0

Después de presionar el enlace de Contacto, es posible que desee ejecutar esto: 'window.scrollTo (window.pageXOffset, window.pageYOffset-1)'. Desplaza la página un píxel hacia arriba, lo que resuelve la desaparición del encabezado. (Mi primera sugerencia fue incorrecta, lo siento). – pimvdb

Respuesta

7

En realidad, si lo miras de cerca, en Firefox también tiene el mismo error. La diferencia es que allí muestra menos contenido del enlace anterior. Tal vez su problema se pueda resolver definiendo, en CSS, un valor de altura mínima para los divs de los enlaces.

div#contact { 
min-height:700px; 
height:auto 
} 

Después de una prueba local vi el verdadero problema :). He creado un correction.css y probado en Opera 11, Safari 5, Firefox 3.6, Firefox 4.0 beta 11 y Chrome 9 todo en Mac OS X. archivo tiene este contenido:

html, body {height:100%;overflow:auto}/* makes the the magic trick of disappearance, disappear */ 
#contact {min-height:700px;height:auto}/* makes the contact div h2 closer to the top */ 
+0

. Lo he probado aquí y ahora veo el verdadero problema. :) ¡de lujo que! – tenshimsm

+0

¡Funciona! Gracias. – Daniel

2

El ajuste de altura hizo nada para mi. La solución para el problema con un elemento de posición fijo que desaparece en Chrome para mí es: window.scrollTo(window.pageXOffset,window.pageYOffset-1);

21

Un método para resolver este problema es forzar a los elementos de posición fija en sus propias capas de renderizado. Esto se puede hacer aplicando una transformación 3d, por ejemplo:

.navbar-fixed-top { 
    -webkit-transform: translate3d(0, 0, 0); 
    transform: translate3d(0, 0, 0); 
} 

Espero que esto ayude.

+0

+1 funcionó para mí – johnhunter