Petit truc pour faire des slide-shows
� la Whygee
(C) Yann GUIDON / [email protected] 08/2005
Some functions, behaviour as well as rendering might
not work as expected, it was designed for Mozilla.
The code was created for compactness, convenience, but not
for compatibility and it's not a P0werP01nt imitation.
Adding M$IE pseudo-compliance decupled the hacking factor !
Les seules touches qui fonctionnent sont :
droite/bas, haut/gauche, home, end. La souris n'est pas trait�e.
L'int�raction, la pr�sentation et les fonctions sont minimales
pour se concentrer uniquement sur les informations � communiquer.
L'id�e du bidule est d'avoir plusieurs "pages" se recouvrant les unes les autres,
pour ne pas ralentir l'affichage lors d'une transition. Au d�but j'ai utilis�
zIndex mais l� �a marche avec la propri�t� 'visibility'. Si du JavaScript est int�gr�,
le temps de d�marrage et d'ex�cution se ressent uniquement au chargement du document HTML,
pas lors d'une transition.
Pour que le brouteur puisse g�n�rer le menu, les "pages" sont
dans des <div>s � l'int�rieur d'un autre <div>,
ce qui facilite la recherche dans l'arbre DOM (on a au moins
un nom d'id � chercher en premier). Tous les sous-<div>s sont ajout�s
au menu dans l'ordre d'�criture du source.
Au d�but, tout allait bien : je codais
clean et facile pour Moz et �a marchait impec'.
Puis des gens ont dit que �a foirait lamentablement sous M$IE
(c'est normal, faut avouer). J'en ai d�terr� un et vu que les incompatibilit�s
ne sont pas nombreuses. Mais elles sont super chiantes !!!
Sous Moz, c'est simple : on peut d�finir les dimensions d'une zone <div>
avec
left, right, top, bottom, width, height.
M$IE ne reconnait pas
bottom dans le CSS.
Ca pose un vrai probl�me d'interaction avec les scrollbars !!!
Si un <div> d�passe par en bas, toute la fen�tre aura un scrollbar
vertical et les touches haut/bas joueront dessus. gaaaaaahhhh !
Donc il faut forcer la taille des <div>s.
Mais sans bottom c'est super gal�re car on
ne connait pas la taille de la fen�tre ! En plus, bottom r�agit
automatiquement au redimensionnement (appui sur F11 par exemple).
Alors que JavaScript ne fournit pas d'�v�nement de redimensionnement
de la fen�tre :-/
La solution utilis�e ici est de redimensionner tous les <div>s
au d�marrage en lisant la propri�t�
document.body.clientHeight
mais celle-ci renvoit des dimensions diff�rentes selon le brouteur !!
Donc encore un autre hack � la con : il faut "d�tecter" le brouteur
pour adapter la valeur.
Le r�sultat de la cure de portabilit� est pire qu'au d�but.
En particulier il faut recharger la page si la taille de la fen�tre
est chang�e. Cela m'a forc� � remettre le code de gestion des cookies
pour ne pas avoir � retrouver manuellement la page qui �tait visualis�e.
Sans parler du code lourd et pas beau ni concis.
On ne me reprendra plus � faire du code portable !!!
texte ...
texte ...
texte ...
texte...PourV�rifierLeFonctionnementDesScrollbars
texte ...
texte ...
texte ...
texte ...
texte ...
texte ...
texte ...
texte ...
texte ...
texte ...
plop
texte ...
texte ...
texte ...
texte ...
texte ...
texte ...
texte ...
plop
texte ...
texte ...
texte ...
texte ...
texte ...
the end !