HTML est un langage statique de description de pages. En effet, l'aspect de la page est défini lors du chargement par le navigateur. En HTML standard, l'animation ne peut venir que de GIFs animées ou de plugs-in spécifiques. Le DHTML permet de personnaliser et d'animer des pages grâce aux fonctions dites Dynamiques des navigateurs.
Grossièrement DHTML peut être considéré comme l'alliance de différentes choses :
- feuilles de styles en Cascade (CSS)
- positionnement de contenu
- support de langages de script
- polices de caractères téléchargeables
- styles et contenus dynamiques (uniquement supportés par Microsoft)
Le Dynamic HTML ou DHTML est né avant même le mot DHTML. Ce sont Netscape et Microsoft qui, les premiers, ont introduit la notion de pages dynamiques dans leurs navigateurs respectifs. Cette double origine est la cause de la plupart des soucis rencontrés à l'heure actuelle par le développeur souhaitant faire du HTML dynamique.
Les deux navigateurs possèdent leurs propres modèles d'objets, des syntaxes souvent différentes, des particularités et des modes d'interprétation des commandes qui leur sont souvent propres.
Le W3C consortium n'est malheureusement intervenu qu'après le début de la bataille et n'a finalement réussi à imposer que le modèle de feuilles de style en cascade : Cascading Style Sheet ou CSS. Le W3C a bien défini un modèle de document dit Document Object Model ou DOM reste à savoir si ce modèle pourra s'imposer dans la communauté mais aussi et surtout au niveau des deux grands fournisseurs de navigateurs.
Le fait est qu'à l'heure actuelle la réalisation de pages animées affichables par les deux navigateurs est beaucoup plus simple et rapide avec des outils tels que Macromedia Flash qu'avec DHTML !!
Nous ne reviendrons pas sur la définition des feuilles de style (cf. le cours html) mais plutôt sur l'utilisation de Javascript à des fins d'animation des pages Web.
Reprenons notre précédente page de style avec quelques modifications mineures. Le résultat n'est pas bien esthétique mais nous allons l'améliorer...
| Exemple | ||
|
.nom3 { font-family: Futura Md BT; font-size: 80px; color: #0000FF; position: absolute; top: 300px; left: 80px; visibility: visible; z-index: 1; } |
<DIV ID =
"ceci" CLASS =
"nom1">Ceci
est</DIV>
<DIV ID = "premiere" CLASS = "nom2">ma première</DIV> <DIV ID = "feuille" CLASS = "nom3">Feuille de style</DIV> |
|
.rub1,.rub3 { font-family: Comic Sans MS; font-size: 30px; color: #FFFFFF; position: absolute; top: 10px; left: 45px; visibility: visible; z-index: 2; } .rub2,.rub4 { |
<DIV ID =
"tableaux" CLASS =
"rub1"> <A HREF = "../cours_html/tableaux.html">Les tableaux</A><BR> </DIV> <DIV ID = "images"
CLASS = "rub2">
<DIV ID = "hyperliens"
CLASS = "rub3">
<DIV ID = "frames"
CLASS = "rub4"> |
|
.texte { text-align: center; font-family: Comic Sans MS; font-size: 22px; color: #ff6633; position: absolute; top: 260px; left: 80px; width: 400px; visibility: hidden; z-index: 1; } |
<DIV ID =
"texte1" CLASS =
"texte"> Une présentation des tableaux en HTML 4</DIV> <DIV ID = "texte2"
CLASS = "texte">
<DIV ID = "texte3"
CLASS = "texte">
<DIV ID = "texte4"
CLASS = "texte"> |
Animons notre page en faisant descendre petit à petit nos liens pour qu'ils se positionnent à des endroits bien précis.
| Exemple | |
|
function
glisserub1(from, to) { if (from < to) { tableaux.top = (from += 2); setTimeout('glisserub1(' + from + ',' + to +')', 100); } } |
|
var navi =
(navigator.appName == "Netscape" && parseInt(navigator.appVersion)
>= 4);
var tableaux = (navi) ? document.tableaux : document.all.tableaux.style; var images = (navi) ? document.images : document.all.images.style; var hyperliens = (navi) ? document.hyperliens : document.all.hyperliens.style; var frames = (navi) ? document.frames : document.all.frames.style;
|
|
glisserub1(0,
60);
glisserub2(0, 60); glisserub3(0, 220); glisserub4(0, 220); |
| Exemple | ||
|
function
affichobjet(objet) { objet.visibility = VISIBLE; } function cachobjet(objet) { |
|
|
<DIV ID =
"tableaux" CLASS =
"rub1"> <A HREF = "../cours_html/tableaux.html" onMouseOver="affichobjet(texte1)" onMouseOut="cachobjet(texte1)">Les tableaux</A><BR> </DIV> <DIV ID = "images"
CLASS = "rub2">
<DIV ID = "hyperliens"
CLASS = "rub3">
<DIV ID = "frames"
CLASS = "rub4"> |
|