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 !
OSZAR »