les MetaCités - logo

Faire glisser les élements grace à JavaScript (draggable elements with JavaScript)

Ma petite fonction pour rendre un élément d'une page web "glissable".

// fonction qui effectue le glisser
function doDrag(e) {
     
  // deplacement depuis la derniere fois
  var difX=e.clientX-window.lastX;
  var difY=e.clientY-window.lastY;

  // calcul des nouvelles coordonnees
  var newX1 = parseInt(dragged_obj.style.left)+difX;
  var newY1 = parseInt(dragged_obj.style.top)+difY;

  // on applique les nouvelles coordonnees
  dragged_obj.style.left=newX1+"px";
  dragged_obj.style.top=newY1+"px";

  // memorise la position
  window.lastX=e.clientX;
  window.lastY=e.clientY;
}

// cette fonction declenche le glissage
function beginDrag(e) {
  e.preventDefault();

  // memorise la position
  window.lastX=e.clientX;
  window.lastY=e.clientY;

  // passe le bebe a doDrag qui va gerer le glissement
  window.onmousemove=doDrag;

  // lorsqu'on va relacher la souris, il faudra appeler endDrag
  window.onmouseup=endDrag;

  // nomme l'objet qui glisse
  dragged_obj=this;

}
   
// fin de la glissade
function endDrag(e) {
  window.onmousemove=null;
}



Enfin, pour rendre un élément de votre page glissable, il faut simplement écrire :

document.getElementById("ID").addEventListener("mousedown",beginDrag, false);

où ID est à remplacer par l'id de l'élément en question.

Ce Script a été testé avec :

Tags : javascript DHTML

Commentaires

Bonjour,
Il a l'air pas mal ce script mais la dernière ligne, où l'on appelle l'ID (document.getElementById("ID").addEventListener("mousedown",beginDrag, false);), il faut la mettre où ?
stef, le 2005-11-04 à 09h26

Ecrire votre commentaire

Vous devez vous connecter pour pouvoir ajouter un commentaire.

MetaCités blog wiki changements pages se connecter

Projets en cours

MetaWiki KarmaOS Bookorati

Metadata

dernière modif :
2005-09-28 21h52
par : sls

Outils

diff. historique editer admin

Tags

javascript [18]
gratuit [16]
php [15]
Mac [14]
Mac OS X [13]
mysql [8]
logiciel [8]
open-source [8]
webware [8]
css [7]
linux [6]
rss [6]
HTML [5]
weblog [5]
DHTML [4]
OVH [4]
python [4]
Apple [4]
wiki [4]
graphisme [4]
tous les tags
MetaWiki : hébergement de wikis, wiki hosting.