Ajax & JS

Les bases du DHTML

Le 14 octobre 2007 à 21:20 par chris

Le DHTML, c’est cette technique qui permet de déplacer ou modifier des éléments d’une page HTML de façon dynamique.

Le DHTML est souvent confondu avec Ajax pourtant si Ajax modifie le contenu d’un élément, le DHTML modifie la forme.
Comment ça marche le Dhtml? C’est assez simple, le DHTML modifie l’apparence CSS de divers éléments grâce à des des script javascript.
Voici un exemple:

Je désire déplacer une boite à gauche ou à droite en cliquant dessus.

mapho

pour cette fonction je vais jouer sur le style padding-left

je crée un fonction appelée ici “deplace()”

  1.  
  2. <script type="text/javascript">
  3. function deplace(id)
  4. {
  5. elm = document.getElementById(id);
  6. if (elm.style.paddingLeft==‘0px’ || elm.style.paddingLeft==0)
  7. {
  8. for (i=1; i<=100; i++){
  9. setTimeout("elm.style.paddingLeft=’"+(i*3)+"px’;",(i*3))
  10. }
  11. } else {
  12. for (i=1; i<=100; i++){
  13. setTimeout("elm.style.paddingLeft=’"+(300-(i*3))+"px’;",(i*3))
  14. }
  15. }
  16. }
  17. </script>

ensuite on crée un élément html

  1. <a href="#" onclick="deplace(’phototest’); return false"><img src="http://smashingcoding.com/wp-admin/Sans%20titre-3.png" id="phototest" alt="mapho" border="0" height="164" width="157" /></a>

Explication

elm est l’élément qui subira les modifications,
si le padding-left de l’élément vaut 0px ou 0 on lance la première boucle “for”

setTimeOut fonctionne comme ceci: setTimeout(”action a exécuter”, “dans combien de milliseconde”) ;

donc dans le cas présent la boucle va créer plusieurs appels à la fonction

  1.  
  2. setTimeout("elm.style.paddingLeft=’3px’;",3);
  3. setTimeout("elm.style.paddingLeft=’6px’;",6);
  4. setTimeout("elm.style.paddingLeft=’9px’;",9);

Ensuite, si le elm.style.paddingLeft n’est pas égal à zero, on lance la fonction inverse.

C’est simple non?

4 commentaires »

Gravatar

Commentaire de lfora

le 19 octobre 2007 à 17:14

Ne serait-il pas judicieux d’orienter le lecteur vers les framework prototype et scriptaculous qui lui permettront de facillement manipuler de l’AJAX, des objets DOM et du DHTML et ce quelque soit le type de navigateur ?

Gravatar

Commentaire de chris

le 20 octobre 2007 à 14:52

Le but de cet explication est de comprendre le principe du dhtml. Je n’utilise pas un frameworks à chaque fois, je réalise régulièrement mes propres fonctions Dhtml/Ajax pour les projets légers.

D’où la naissance de simple.js

Gravatar

Commentaire de isabelle

le 22 octobre 2007 à 12:40

Initiative excellente que ce blog.
Design sympa en plus ^^

Bonne continuation,

Gravatar

Commentaire de graffiti

le 22 octobre 2007 à 14:00

c’est simple, et c’est ça qui est bien, car à vouloir additionner les effets parfois plus rien ne marche (trop de variables avec le meme nom qui s’annulent…)

Laisser un commentaire

Votre Nom

Votre E-mail (obligatoire mais ne sera pas publié)

Votre Site ou blog

Votre commentaire

Valid XHTML 1.0 Transitional