Bug : Marquee et display none
Publié : 16 avr. 2008, 17:54
Bonjour,
il y a un problème avec Firefox, lorsqu'un marquee se trouve dans un bloc 'display: none' ou un iframe 'display: none', lorsqu'un javascript transforme ce bloc en 'display: block', le marquee ne démarre pas.
Exemple : le site http://www.accueil-paysan-dordogne.com utilise la thickbox avec un iframe (défini en display:none au départ), lorsque la page du iframe est chargée et devient visible, le marquee ne démarrerait pas si il n'y avait pas un changement de 'location' après l'événement onload.
La même chose se passe avec un <div id='test' style="display: none; ..."><marquee ...></marquee></div>
qui deviendrait actif par un évènement onMouseOver, onClick, ...
La ruse est dans ce cas de laisser le bloc en "visibility: hidden; display: block" le temps du chargement de la page, puis d'utiliser un timeout lors du onload pour basculer tous les blocs en "display: none" (le timeout est obligatoire car l'événement onload arrive trop tôt par rapport à la gestion de firefox sur cette partie), exemple http://www.paysdeneuvic24.com
L'inconvénient, c'est qu'un bloc 'display: block; visibility: hidden' prend toujours de la place dans une page et que si on utilise pas un 'position: absolute' pour le mettre à un endroit particulier, on obtient un ascenseur inutile.
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.0; fr; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13
il y a un problème avec Firefox, lorsqu'un marquee se trouve dans un bloc 'display: none' ou un iframe 'display: none', lorsqu'un javascript transforme ce bloc en 'display: block', le marquee ne démarre pas.
Exemple : le site http://www.accueil-paysan-dordogne.com utilise la thickbox avec un iframe (défini en display:none au départ), lorsque la page du iframe est chargée et devient visible, le marquee ne démarrerait pas si il n'y avait pas un changement de 'location' après l'événement onload.
La même chose se passe avec un <div id='test' style="display: none; ..."><marquee ...></marquee></div>
qui deviendrait actif par un évènement onMouseOver, onClick, ...
La ruse est dans ce cas de laisser le bloc en "visibility: hidden; display: block" le temps du chargement de la page, puis d'utiliser un timeout lors du onload pour basculer tous les blocs en "display: none" (le timeout est obligatoire car l'événement onload arrive trop tôt par rapport à la gestion de firefox sur cette partie), exemple http://www.paysdeneuvic24.com
L'inconvénient, c'est qu'un bloc 'display: block; visibility: hidden' prend toujours de la place dans une page et que si on utilise pas un 'position: absolute' pour le mettre à un endroit particulier, on obtient un ascenseur inutile.
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.0; fr; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13