Depuis peu, je m’intéresse à ECMAScript (qui est en fait une sorte de « noyau normalisé » de Javascript) en conjonction avec DOM.
Quand mes sites sont passés aux normes, mon conformisme me faisait penser, comme pas mal de gens d’ailleurs, que « le javascript c’est pas bien ». J’ai visité la section consacrée d’OpenWeb et je suis tombé sur cette page : elle explique clairement que le Javascript n’a que des avantages dès qu’il est utilisé de manière à séparer la structure des scripts (exactement comme la séparation structure/présentation en CSS) et de manière non obstructive (à savoir qu’il n’empêche pas l’utilisation de certaines fonctions du site lorsqu’il est désactivé).
Pour cela, il ne faut plus écrire en dur les évenements dans le XHTML (onmouseover, onmouseout, etc), mais définir ces évenements lors de l’éxécution du code Javascript.
J’ai donc continué ma découverte et flâné sur divers sites. Malheureusement j’ai été déçu par le fait qu’il est impossible de savoir si ces sites concernent le noyau normalisé ECMA ou si j’utilisais des propriétés non valides sans le savoir. De plus la seule référence réellement exploitable est la spécification ECMAScript mais celle-ci est particulièrement indigeste et peu pratique (en PDF…). Il existe la référence en français de ToutJavascript - particulièrement succinte - mais là encore je suis sûr d’y trouver des propriétés non conformes sans pouvoir faire la différence…
Néanmoins, le language étant étonnament facile à prendre en main, je suis arrivé en à peine 30 minutes à faire un premier programme. Celui-ci était assez simple et appliquait un effet de fondu vers le rouge lorsqu’on plaçait la souris sur un <div>. J’ai creusé la voie en implémentant la possibilité de pouvoir gérer plusieurs fondus à la fois sur plusieurs éléments et la possibilité de choisir la couleur de départ et la couleur de fin ainsi que la vitesse. Ca a donné ce magnifique script. Celui-ci se trouve en action sous vos yeux : déplacez votre souris sur la liste des catégories en haut pour vous en rendre compte.
En conformité avec les principes de séparation et d’accessibilité, le balisage XHTML n’a pas été modifié au niveau du menu pour permettre cet effet, et lorsque le Javascript est désactivé on a l’effet de hover simple habituel.
Notons également que grâce à l’utilisation de l’attribut « defer » lors de la déclaration du script, le navigateur affiche la page avant de l’éxécuter, ce qui évite au script de ralentir l’affichage de la page.
Ah, dernière chose : si vous êtes intéressés par mon script et que vous souhaiteriez le copier-coller, rien ne vous en empêche, mais vous serez gentils de mentionner « Made by e-t172 » quelque part en commentaire dans le code. Merci.
Rédigé par e-t172 | 13 commentaires »