Body onload y document.location

nifa -  
 nifa -
Hola,

Tengo un sitio en PHP.

Uso <body onload="document.location.href='#top_image'"> para que algunas páginas se muestren directamente en mi ancla. El problema es que la página se abre en la posición “estándar” antes de hacer el desplazamiento hasta mi ancla, lo que crea una especie de parpadeo de la página, desagradable visualmente. Esto no ocurre solo cuando la página se carga por primera vez. Luego, si se navega por el sitio y se vuelve a la página, se coloca directamente en el nivel de la ancla, sin parpadeo visual. (idem con window.location)

¿Cómo hacer para evitar ese “parpadeo” al abrir la página?

Gracias por vuestra ayuda.
Configuración: Windows Vista Internet Explorer 7.0 / FireFox 3.0.12

1 respuesta

Luan1604 Mensajes publicados 141 Estado Miembro 4
 
Todo depende del PC, todo depende del navegador, en fin, todo depende de todo...

En la primera visita a un sitio, hay que cargar el resto de los elementos de la página, después, está en la caché. Hagas lo que hagas, siempre habrá un sobresalto.

Sin embargo, intenta un
<?php
header('Location: page.php#ancre');
?>

en LA PARTE SUPERIOR de las páginas. Antes del doctype, en fin, antes de TODO. Debería ir más rápido que el javascript pero dudo que eso reduzca totalmente el “sursaut”.

Luan.
--
1... 2... 3...
0
nifa
 
Gracias por la respuesta. No funciona.

Hay que decir que tengo esto al inicio de la página de mi galería de fotos:

<?php if (!defined('WEBPATH')) die(); $themeResult = getTheme($zenCSS, $themeColor, 'light'); $firstPageImages = normalizeColumns('2', '6');?>

Intenté colocar el header delante de todo y justo después, y también entre die(); y $themeResult,
pero la página no se muestra en absoluto. También probé con un timeout, pero tampoco hay salida.
0