Redimensionner une image par drag/drop glissez/deplacez

Description

permet de redimensionner une image en cliquant dessus et en déplaçant la sourie.

il fonctionne sous ie5,ns4.8 et ns7.02, je l'ai testé !!

Source / Exemple :


<HTML>
<HEAD>
<SCRIPT language="javascript" TYPE="text/javascript">

var ie4 = document.all;
var ns4 = document.layers;
var ns6 = ((!ie4)&&(document.getElementById));

var monCalque;

function init()
{
 if(ns6)
 {
   document.addEventListener("mousedown",start, false); // on affecte une fonction à chaque evenement
   document.addEventListener("mousemove",drag, false);
   document.addEventListener("mouseup",drop, false);
 }
 else
 {
   if(ns4)
   {
     document.captureEvents(Event.MOUSEDOWN|Event.MOUSEMOVE|
                          Event.MOUSEUP) // on capture les evenements
   }
   document.onmousedown=start; // on affecte une fonction à chaque evenement
   document.onmousemove=drag;
   document.onmouseup=drop;
 }
}

function start(e)
{
 if (ns4)
 {
   monCalque=document.layers[e.target.name];
   if(monCalque)
   {
   imsrc = e.target.src;  // on recupere le nom de l'image
   imname = e.target.name; // le nom de la balise <img>
   imwidth = e.target.width; // sa taille initiale en X
   imheight = e.target.height;                  // en Y
   monCalque.X=monCalque.left; // sa place à gauche
   monCalque.Y=monCalque.top; // sa place en haut
   }
   return false;
 }
 else if (ie4)
 {
   monCalque=event.srcElement.parentElement;
   if(monCalque)
   {
   imsrc = event.srcElement.src;
   imname = event.srcElement.name;
   imwidth = event.srcElement.width;
   imheight = event.srcElement.height;
   monCalque.X=monCalque.style.left;
   monCalque.X=monCalque.X.substring(0,monCalque.X.length-2); // on supprime px à la fin de la chaine
   monCalque.Y=monCalque.style.top;
   monCalque.Y=monCalque.Y.substring(0,monCalque.Y.length-2); // on supprime px à la fin de la chaine
   }
 }
 else if (ns6)
 {
   monCalque=document.getElementById(e.target.name);
   if(monCalque)
   {
   imsrc = e.target.src;
   imname = e.target.name;
   imwidth = e.target.width;
   imheight = e.target.height;
   monCalque.X=monCalque.style.left;
   monCalque.X=monCalque.X.substring(0,monCalque.X.length-2);
   monCalque.Y=monCalque.style.top;
   monCalque.Y=monCalque.Y.substring(0,monCalque.Y.length-2);
   }
 }
}
function drag(e)
{
if(monCalque)
 {
    contenu =  '<img name="'+imname+'" border="1px" src="dummy.gif" width="'+ imwidth;  // dummy.gif pour une image vide.
    contenu += 'px" height="'+ imheight +'"></img>';                                    // border=1px pour voir un cadre.
  if (ns4)
  {
   imwidth = eval(e.pageX-monCalque.X);  // on recupere la nouvelle taille en X
   imheight = eval(e.pageY-monCalque.Y);                                // en Y
   monCalque.document.open();
   monCalque.document.write(contenu);
   monCalque.document.close();
  }
  else if ((ie4)&&(monCalque.id))
  {
   imwidth = eval(event.clientX-monCalque.X);  // on recupere la nouvelle taille en X
   imheight = eval(event.clientY-monCalque.Y);                                // en Y
    monCalque.innerHTML=contenu;
   return false;
  }
  else if ((ns6)&&(monCalque.id))
  {
   imwidth = eval(e.clientX-monCalque.X);   // on recupere la nouvelle taille en X
   imheight = eval(e.clientY-monCalque.Y);                                 // en Y
    monCalque.innerHTML=contenu;
   return false;
  }
 }
}

function drop(e)
{
if(monCalque)
 {
    contenu =  '<img name="'+imname+'" src="'+ imsrc +'" width="'+ imwidth;
    contenu += 'px" height="'+ imheight +'"></img>';

  if (ns4)
  {
   monCalque.document.open(); // on ouvre puis on ecrit le document
   monCalque.document.write(contenu);
   monCalque.document.close();
   monCalque=null;
  }
  else if ((monCalque.id))  // pour ie et ns>4
  {
   monCalque.innerHTML=contenu;  // on ouvre puis on ecrit le document
   monCalque=null;
   return false;
  }
 }
}
</SCRIPT>
</HEAD>

<BODY>
<DIV id="dgo" z-index="auto" style="position:absolute;left:5;top:10" > <!-- position:absolute necessaire pour ns4 -->
 <IMG name="dgo" src="irlande2.jpg" width="100px" height="101px"></DIV>
<DIV id="dgo2" z-index="auto" style="position:absolute;left:300;top:10" >
 <IMG name="dgo2" src="irlande.jpg" width="102px" height="103px"></DIV>
<SCRIPT> init();</SCRIPT>     <!--  déclenchement  ------->
</BODY>

</HTML>

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.