Curs Javascript

Drag si Drop este un efect prin care elementele pot fi mutate /trase cu mouse-ul si lasate intr-un loc special in pagina web.
Pentru a crea efecte drag & drop cu jQuery, trebuie sa folositi si jQuery UI, o librarie de functii aditionale la libraria de baza jQuery.
jQuery UI e ca un plugin cu mai multe functii pentru crearea de efecte speciale cu jQuery. Deci, trebuie sa includeti in pagina web ambele fisiere ".js": cel principal cu jQuery si jQuery UI.
- Puteti descarca jQuery UI de la pagina: Download jQuery UI


Efectul "drag & drop" se creaza cu metodele: draggable() si droppable().
Metoda draggable() adauga elementelor din pagina posibilitatea de a fi trase si mutate cu mouse-ul.
  Sintaxa:
$('selector').draggable({ optiune: valoare });
- optiune: valoare - reprezinta unul sau mai multe perechi optiune/valoare pentru configurarea functiei draggable(). Sunt o multime de optiuni pentru aceasta functie, iata cateva din ele: - Lista completa cu optiunile pentru metoda draggable() poate fi gasita la pagina: Draggable.

• Mtoda droppable() permite oricarui element din pagina sa devina "droppable" (in care pot fi lasate elementele "draggable", adica cele care pot fi trase cu mouse-ul).
  Sintaxa:
$('selector').droppable({ optiune: valoare });
- optiune: valoare - reprezinta unul sau mai multe perechi optiune/valoare pentru configurarea functiei droppable(). Iata cateva din ele: - Lista completa cu optiunile pentru metoda droppable() poate fi gasita la pagina: Droppable.

Exemplu 1:
Trei imagini si un DIV care pot fi mutati cu mouse-ul si plasati intr-un alt DIV. Cand elementele sunt trase si lasate in DIV-ul droppable, acestea dispar cu un efect animat (cu hide()). DIV-ul droppable contine un SPAN cu text "Click", cand se da click pe el reface vizibile acele elementele.
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>jQuery Drag si Drop</title>
<style type="text/css"><!--
#drop {
 width:200px;
 height:150px;
 margin:3px auto;
 background:#eddaa8;
 font-size:16px;
}
#drop #sw { text-decoration:underline; cursor:pointer; }
#drag {
 width:450px;
 height:180px;
 margin:12px auto;
 border:1px solid silver;
 font-size:16px;
}
#drag .drg { margin:10px 12px; }
#drag div.drg {
 width:150px;
 height:50px;
 background:#07da08;
 border:2px solid blue;
}
--></style>
<script type="text/javascript" src="jquery_1.6.1.js"></script>
<script type="text/javascript" src="jquery-ui-1.8.14.js"></script>
<script type="text/javascript"><!--
$(document).ready(function() {
  // sets the draggable
  $('#drag .drg').draggable({
    cursor: 'move',          // seteaza aspectul cursorului
    revert: 'valid'
  });

  // sets droppable
  $('#drop').droppable({
    drop: function(event, ui) {
      // cand elementele trase sunt eliberate, sunt ascunse cu hide()
      ui.draggable.hide(1000);
    }
  });

  // la click pe "#sw" (din interiorul lui "#drop")
  // face vizibile elementele cu class="drg", continute in "#drag"
  $('#drop #sw').click(function(){
    $('#drag .drg').slideDown(1000);
  });
});
--></script>
</head>
<body>
<div id="drop">Plaseaza aici &nbsp; &nbsp; &nbsp; &nbsp; <span id="sw">Click</span></div>
<div id="drag">
 Muta cu mouseul aceste imagini:<br />
 <img src="circle.gif" alt="cerc" width="45" height="45" class="drg" />
 <img src="triangle.gif" alt="triunghi" width="65" height="55" class="drg" />
 <img src="rhomb.gif" alt="romb" width="70" height="55" class="drg" />
 <div class="drg">Click si trageti cu mouse-ul acest DIV</div>
</div>
</body>
</html>
Demo:
Plaseaza aici         Click
Muta cu mouseul aceste imagini:
cerc triunghi romb
Click si trageti cu mouse-ul acest DIV

Exemplu 2:
Iata un alt exemplu, ca sa se vada diferenta si efectul cand sunt definite anumite optiuni. Se folosesc aceleasi elemente HTML, dar de aceasta data cu mai multe optiuni setate in functiile draggable() si droppable().
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>jQuery UI Drag si Drop</title>
<style type="text/css"><!--
#drop {
 width:200px;
 height:150px;
 margin:3px auto;
 background:#eddaa8;
 font-size:16px;
}
#drop.drp { background:#f1ef08; }
#drop #sw { text-decoration:underline; cursor:pointer; }
#drag {
 width:450px;
 height:180px;
 margin:12px auto;
 border:1px solid silver;
 font-size:16px;
}
#drag .drg { margin:10px 12px; }
#drag div.drg {
 width:150px;
 height:50px;
 background:#07da08;
 border:2px solid blue;
}
--></style>
<script type="text/javascript" src="jquery_1.6.1.js"></script>
<script type="text/javascript" src="jquery-ui-1.8.14.js"></script>
<script type="text/javascript"><!--
$(document).ready(function() {
  // seteaza draggable si cateva optiuni
  $('#drag .drg').draggable({
    cursor: 'move',          // seteaza aspectul cursorului
    revert: 'invalid',       // face elementu tras sa revina la pozitia lui, daca nu e lasat in droppable
    revertDuration: 900,     // durata miscarii de revenire
    opacity: 0.35            // opacitatea elementului in timp ce e mutat
  });

  // definire optiuni pt. droppable
  $('#drop').droppable({
    accept: 'img.drg',            // accepta doar imagini cu class 'drg'
    activeClass: 'drp',           // adauga class "drp" cand un element acceptat e mutat
    drop: function(event, ui) {
      // cand elementele trase sunt eliberate, sunt ascunse cu hide()
      ui.draggable.hide(1000);
    }
  });

  // la click pe "#sw" (din interiorul lui "#drop")
  // face vizibile elementele cu class="drg", continute in "#drag"
  $('#drop #sw').click(function(){
    $('#drag .drg').slideDown(1000);
  });
});
--></script>
</head>
<body>
<div id="drop">Plaseaza aici &nbsp; &nbsp; &nbsp; &nbsp; <span id="sw">Click</span></div>
<div id="drag">
 Muta cu mouseul aceste imagini:<br />
 <img src="circle.gif" alt="cerc" width="45" height="45" class="drg" />
 <img src="triangle.gif" alt="triunghi" width="65" height="55" class="drg" />
 <img src="rhomb.gif" alt="romb" width="70" height="55" class="drg" />
 <div class="drg">Click si trageti cu mouse-ul acest DIV</div>
</div>
</body>
</html>
- revert: 'invalid' - face elementele trase sa revina la pozitia de start daca sunt lasate in alt loc decat in droppable; iar - evertDuration: 900 - seteaza durata revenirii in 900 milisecunde.
- opacity: 0.35 - adauga transarenta la elementul tras cu mouse-ul.
- activeClass: 'drp' - adauga class "drp" la obiectul droppable, pe timpul cand un element acceptat e tras.

DIV-ul nu poate fi plasat in droppable deorece s-a definit optiunea:   accept: 'img.drg'   (accepta doar <img> cu class="drg").
In acest exemplu, cand se apasa pe textul "Click", elementele care au fost ascunse apar in locatia in care au disparut, dar in primul exemplu ele apar in locatia unde erau vizibile, aceasta diferenta e determinata de valorile "valid" si "invalid" date optiunii revert.
Demo:
Plaseaza aici         Click
Muta cu mouseul aceste imagini:
cerc triunghi romb
Click si trageti cu mouse-ul acest DIV

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag adauga rand nou in paragraf?
<b> <br> <p>
Prima linie ...<br>
Alta linie...
Ce proprietate CSS seteaza spatiu dintre litere?
text-size word-spacing letter-spacing
#id {
  letter-spacing: 2px;
}
Ce functie obtine accesul la un element HTML cu un anumit ID?
getElementById() getElementsByTagName() createElement()
var elm = document.getElementById("theID");
var content = elm.innerHTML;
alert(content);
Clic pe instructiunea "echo" utilizata corect.
echo "CoursesWeb.net" echo "CoursesWeb.net"; echo ""CoursesWeb.net";
echo "Adresa URL: http://CoursesWeb.net";
Care din urmatoarele expresii cu "paint" (a picta) se foloseste pentru forma Negativa?
will paint not paint have painted
She does not paint that landscape.
- Ea nu picteaza acel peisaj.
Care din urmatoarele expresii cu "cantar" (a canta) se foloseste pentru propozitie Negativa?
ir a cantar cantaba no cantar
Ella no canta esa canciĆ³n.
- Ea nu canta acel cantec.
Drag si Drop cu jQuery UI

Last accessed pages

  1. Conditional IF in Limba Engleza - Fraze Conditionale (120697)
  2. Creare Foi de Stil (3218)
  3. Subtantive - Plural (5558)
  4. Alphabet and Pronunciation - Alfabetul si pronuntia in limba engleza (58821)
  5. Verbe cu baza schimbatoare - toate tipurile (1010)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1184)
  2. Curs HTML gratuit Tutoriale HTML5 (924)
  3. Coduri pt culori (670)
  4. Creare si editare pagini HTML (542)
  5. Conditional IF in Limba Engleza - Fraze Conditionale (493)
Chat
Discuta sau lasa un mesaj pt. ceilalti utilizatori
Full screenInchide