Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]mousemove- down/up
Forum PHP.pl > Forum > Przedszkole
Kloc
Witajcie. Mam skrypt, który pokazuje mi aktualną pozycję kursora w divie.
  1. $( "#div" ).mousemove(function( event ) {
  2. var pageCoords = "( " + event.pageX + ", " + event.pageY + " )";
  3. var clientCoords = "( " + event.clientX + ", " + event.clientY + " )";
  4. document.getElementById("obiekt").style.left=event.pageX+"px";
  5. document.getElementById("obiekt").style.top=event.pageY+"px";
  6. });


I szukam czegoś co będzie działać tylko gdy klawisz myszy jest aktywny/nie aktywny coś w stylu onmousedown/onmouseup.
Po zastąpieniu tymi powyżej mousemove skrypt nie działa. Jak wstawię np takie mousedown/mouseup, to jest ok, ale mi potrzeba gdy jest wciśnięty.
trueblue
Jeśli chcesz ustawiać div podczas poruszania myszą, ale tylko z przyciśniętym lewym przyciskiem, to:
  1. $( "#div" ).mousemove(function( event ) {
  2. var pageCoords = "( " + event.pageX + ", " + event.pageY + " )";
  3. var clientCoords = "( " + event.clientX + ", " + event.clientY + " )";
  4. if(event.which==1){
  5. document.getElementById("obiekt").style.left=event.pageX+"px";
  6. document.getElementById("obiekt").style.top=event.pageY+"px";
  7. }
  8. });
Kloc
Chcę zrobić takie coś jak dodawanie zdjęć na tablica-olx biggrin.gif, że łapię sobie zdjęcie i je przenoszę na do kosza lub do folderu, tylko coś mi nie wychodzi :/
Przesuwając diva on się tak jakby zacina, a tam jest płynnie to zrobione. No i chcę żeby on się przesówał tylko jak go złapię i ciągne z wciśniętym klawiszem, a jak puszczę to wraca na swoje miejsce. Ale gdzie kolwiek nacisnę i ruszę myszką to on się przesówa. To co na razie zrobiłem. Jakieś pomysły podpowiedzi mile widziane.

  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. div{
  6. width: 100%;
  7. height: 500px;
  8. background: yellow;
  9. border: 2px solid;
  10. float: left;
  11. position:relative;
  12. }
  13.  
  14. #obiekt{
  15. clear:both;
  16. width: 220px;
  17. height: 170px;
  18. background: red;
  19. position:absolute; left:0px; top:0px;
  20. cursor:move;
  21. }
  22. .pos{
  23. float:left;
  24. position:relative; left:0px; top:0px;
  25. width: 100px;
  26. height: 50px;
  27. background:green;
  28. }
  29. </style>
  30.  
  31. <script src="jquery.js"></script> <!-- lub: <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> -->
  32. </head>
  33.  
  34. <div id="div"></div>
  35. <div id="positionLeft" class="pos"></div>
  36. <div id="positionTop" class="pos"></div>
  37.  
  38. function dzialaj(status){
  39. $( "#div" ).mousemove(function( event ) {
  40. var pageCoords = "( " + event.pageX + ", " + event.pageY + " )";
  41. var clientCoords = "( " + event.clientX + ", " + event.clientY + " )";
  42. if(status==1){
  43. if(event.which==1){
  44. document.getElementById("obiekt").style.left=event.pageX+"px";
  45. document.getElementById("obiekt").style.top=event.pageY+"px";
  46. document.getElementById("positionLeft").innerHTML=event.pageX+"px";
  47. document.getElementById("positionTop").innerHTML=event.pageY+"px";
  48. }
  49. }
  50. else{
  51. document.getElementById("obiekt").style.left=$( "#positionLeft" ).text()+"px";
  52. document.getElementById("obiekt").style.top=$( "#positionTop" ).text()+"px";
  53. }
  54. });
  55. }
  56.  
  57. <div id="obiekt" onmousedown="dzialaj(1)" onmouseup="dzialaj(0)"></div>
  58.  
  59. </body>
  60. </html>


Coś mniejwięcej w tym stylu chcę zrobić. Nie szukam gotowców.

trueblue
Poszukaj o drag and drop.
Kloc
Właśnie o coś takiego mi chodziło biggrin.gif, dzięki biggrin.gif

Zrobiłem tak jak w poradniku

  1. <!DOCTYPE HTML>
  2. #div1 {width:350px;height:70px;padding:10px;border:1px solid black;}
  3. #div2 {width:350px;height:70px;padding:10px;border:1px solid black;}
  4. #div3 {width:350px;height:70px;padding:10px;border:1px solid black;}
  5. #div4 {width:350px;height:70px;padding:10px;border:1px solid black;}
  6. function drag(ev)
  7. {
  8. ev.dataTransfer.setData("Text",ev.target.id);
  9. }
  10.  
  11. function drop(ev)
  12. {
  13. ev.preventDefault();
  14. data=ev.dataTransfer.getData("Text");
  15. ev.target.appendChild(document.getElementById(data));
  16. }
  17.  
  18. function allowDrop(ev)
  19. {
  20. ev.preventDefault();
  21. }
  22. </head>
  23.  
  24. <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)">
  25. <img id="drag1" src="http://th.interia.pl/51,b38363ff94873696/zima-slonce-drzewa.jpeg" draggable="true" ondragstart="drag(event)" width="336" height="69">
  26. </div>
  27. <div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)">
  28. <img id="drag2" src="http://www.tapeta-polna-lato-aka-droga.na-pulpit.com/zdjecia/polna-lato-aka-droga.jpeg" draggable="true" ondragstart="drag(event)" width="336" height="69">
  29. </div>
  30. <div id="div3" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
  31. <div id="div4" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
  32.  
  33. </body>
  34. </html>
  35.  


I wszystko działa jak powinno, lecz mam jeden minus gdy złapie jedno zdjęcie i je upuszczę na obszar drugiego zdjęcia to ono się chowa, a gdy obok (do diva) to są 2 elementy w jednym. Ja chciałbym takie zabezpieczenie zrobić że może być tylko 1 element. Jak opuszczam nowe zdjęcie to ono nie znika tylko wywala stare do diva obok czy gdzieś tam. Da się coś takiego zrobić?
Kloc
A jak mogę pobrać id diva na który element został opuszczony questionmark.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.