onmousedown, onmousemove & onmouseup

onmousedown, onmousemove & onmouseup - HTML/CSS - Programmation

Marsh Posté le 10-05-2005 à 21:06:06    

Voila, j'ai créé une "pseudo-fenetre" en utilisant une couche CSS, pour un forum perso.
Cette petite fenetre permet de choisir des emoticons pour insérer leur tag dans un message...je crois meme que son code pourrait en intéresser quelques-uns :sarcastic:  
 
Toutefois j'ai un probleme : quand on utilise les événements onmousedown, onmousemove et onmouseup, il n'est plus possible de faire une sélection du texte normale en le surlignant a la souris !! Alors comment faire pour contourner ce probleme  :??:  
 
L'idéal serait de déclencher ces évenements sur le clic permettant l'ouverture de la fenetre, puis de les annuler des que la fenetre est fermée...mais je ne vois pas comment.
 
Voici le code correspondant : mais bon, vous n'aurez pas les images pour la fenetre  :D  
 

Code :
  1. <html>
  2. <head>
  3. <script language="JavaScript">
  4. N = (document.all) ? 0 : 1; // Permet de connaitre le navigateur utilisé
  5. var winObject, X, Y;
  6. function MDown(e)
  7.   {
  8.   if (N) { winObject = document.layers[e.target.name];  X=e.x; Y=e.y; return false; }
  9.   else   { winObject = event.srcElement.parentElement.style; X = event.offsetX; Y = event.offsetY; }
  10.   }
  11. function MMove(e)
  12.   {
  13.   if (winObject)
  14.     {
  15.     windowHead.src = "bar2.png";
  16.     if (N) winObject.moveTo( (e.pageX-X), (e.pageY-Y) );
  17.     else
  18.       {
  19.       winObject.pixelLeft = event.clientX-(X+20) + document.body.scrollLeft;
  20.       winObject.pixelTop = event.clientY-Y + document.body.scrollTop;
  21.       return false;
  22.       }
  23.     }
  24.   }
  25. function MUp() { winObject = null; windowHead.src = "bar.png"; }
  26. if (N) document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
  27. document.onmousedown = MDown;
  28. document.onmousemove = MMove;
  29. document.onmouseup = MUp;
  30. </script>
  31. <style type="text/css">
  32. .Window { position: absolute;  top: 150; left: 0; height: 300; width: 150; margin: 0; padding: 0; border: 1px solid black; visibility: hidden; }
  33. .WindowButton { position: absolute; top: 0; left: 0; margin: 0; }
  34. .WindowBar { position: absolute; top: 0; left: 20; margin: 0; }
  35. </style>
  36. </head>
  37. <body>
  38. <form name="a">
  39.   <textarea name="area"></textarea>
  40. </form>
  41. <IMG SRC="test.gif" STYLE="border: 0px;" onClick='eWindow.style.visibility= "visible";'>
  42. <DIV ID="eWindow" CLASS="Window">
  43.     <IMG SRC="close.png" NAME="closeButton" CLASS="WindowButton" onClick='eWindow.style.visibility="hidden";'
  44.         onMouseOver="closeButton.src='close2.png';" onMouseOut="closeButton.src='close.png';">
  45.    <IMG SRC="bar.png" NAME="windowHead" CLASS="WindowBar">
  46.    <BR><IMG SRC="test.gif" onClick='document.forms["a"].elements["area"].value+="[test]";'>
  47. </DIV>
  48. </body>
  49. </html>

Reply

Marsh Posté le 10-05-2005 à 21:06:06   

Reply

Marsh Posté le 10-05-2005 à 21:36:48    

Super intéressant d'enregistrer les évènements sur le document complet :sarcastic:  
 
et puis  

Citation :

document.layers
N = (document.all) ? 0 : 1;


Welcome to 1995, last stop of web coding is you :sarcastic:  
 
http://www.quirksmode.org
ça pourrait te servir je pense [:spamafote]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed