Interfetele HTML Drag and Drop permit aplicatiilor sa utilizeze caracteristicile drag-and-drop din browsere. Utilizatorul poate selecta elemente glisabile cu mouse-ul, trage acele elemente intr-un element dropable si le poate lasa eliberand butonul mouse-ului. O reprezentare translucida a elementelor glisabile urmeaza indicatorul in timpul operatiei de tragere.

Pentru site-uri web, extensii si aplicatii XUL, puteti personaliza ce elemente pot deveni glisabile , tipul de feedback pe care il produc elementele glisabile si elementele care se pot fixa .

Aceasta prezentare generala a HTML Drag and Drop include o descriere a interfetelor, pasi de baza pentru a adauga suportul drag-and-drop la o aplicatie si un rezumat al interoperabilitatii interfetelor.

Trageti evenimente

HTML drag-and-drop foloseste modelul de evenimente DOM si trage evenimente mostenite de la evenimentele mouse-ului. O operatiune tipica de tragere incepe atunci cand un utilizator selecteaza un element glisabil , trage elementul catre un element care se poate fixa si apoi elibereaza elementul glisat .

In timpul operatiilor de tragere, mai multe tipuri de evenimente sunt declansate, iar unele evenimente se pot declansa de multe ori, cum ar fi evenimentele de tragere si glisare.

Fiecare tip de eveniment de tragere are un gestionar global de evenimente asociat:

Nota: Nici evenimentele dragstart si dragend nu sunt declansate atunci cand trageti un fisier in browser din sistemul de operare.

Interfete

Interfetele HTML Drag and Drop sunt DragEvent, DataTransfer, DataTransferItem si DataTransferItemList.

Interfata DragEvent are un constructor si o proprietate dataTransfer, care este un obiect DataTransfer.

Obiectele Transfer de date includ starea evenimentului de tragere, cum ar fi tipul de tragere efectuata (cum ar fi copierea sau mutarea), datele de tragere (unul sau mai multe elemente) si tipul MIME al fiecarui element de tragere . Obiectele DataTransfer au, de asemenea, metode pentru a adauga sau elimina elemente la datele de tragere.

Interfetele DragEvent si DataTransfer ar trebui sa fie singurele necesare pentru a adauga functii HTML Drag and Drop intr-o aplicatie. (Firefox accepta unele extensii specifice Gecko pentru obiectul DataTransfer, dar acele extensii vor functiona numai pe Firefox.)

Fiecare obiect DataTransfer contine o proprietate de articole, care este o lista de obiecte DataTransferItem. Un obiect DataTransferItem reprezinta un singur element de tragere , fiecare cu o proprietate de tip (fie sir sau fisier) si o proprietate de tip pentru tipul MIME al elementului de date. Obiectul DataTransferItem are, de asemenea, metode pentru a obtine datele elementului de tragere.

Obiectul DataTransferItemList este o lista de obiecte DataTransferItem. Obiectul lista are metode pentru a adauga un element de tragere la lista, pentru a elimina un element de tragere din lista si pentru a sterge lista tuturor elementelor de tragere.

O diferenta cheie intre interfetele DataTransfer si DataTransferItem este ca prima foloseste metoda getData () sincrona pentru a accesa datele unui element de tragere, dar cea de-a doua foloseste in schimb metoda getAsString () asincrona.

Nota: DragEvent si DataTransfer sunt acceptate in general pe browserele desktop. Cu toate acestea, interfetele DataTransferItem si DataTransferItemList au suport limitat pentru browser. Consultati Interoperabilitatea pentru mai multe informatii despre interoperabilitatea drag-and-drop.

Interfete specifice Gecko

Cele elementare

Aceasta sectiune este un rezumat al pasilor de baza pentru a adauga functionalitatea drag-and-drop la o aplicatie.

Identificati ceea ce este glisabil

Pentru a face un element glisabil, este nevoie de adaugarea atributului glisabil si de gestionarea evenimentelor globale ondragstart, asa cum se arata in urmatorul exemplu de cod:

functia <script> dragstart_handler (ev) {ev.dataTransfer.setData (“text / simplu”, ev.target.id); } window.addEventListener (‘DOMContentLoaded’, () => {const element = document.getElementById (“p1”); element.addEventListener (“dragstart”, dragstart_handler);}); </script> <p id = “p1” draggable = “true”> Acest element este glisabil. </p>

Pentru mai multe informatii, consultati:

  • Referinta atribut glisabil
  • Ghid de operatii de tragere

Definiti datele glisarii

Aplicatia este gratuita pentru a include orice numar de elemente de date intr-o operatie de tragere. Fiecare element de date este un sir de un anumit tip – de obicei un tip MIME, cum ar fi text / html.

Fiecare eveniment de tragere are o proprietate dataTransfer care detine datele evenimentului. Aceasta proprietate (care este un obiect DataTransfer) are, de asemenea, metode de gestionare a datelor de tragere. Metoda setData () este utilizata pentru a adauga un element la datele de tragere, asa cum se arata in exemplul urmator.

functia dragstart_handler (ev) {ev.dataTransfer.setData (“text / simplu”, ev.target.innerText); ev.

pprno sin bragas en la calle
me follo a mi tia porno rspañol
supertetas incestos gays
porno hablado español videos de lucio saints
maduras españolas sexo recopilacion pajas
lesbianas incesto venezolanas desnudas
pillados follando española viciosa
todoporno forzadas a follar
chochitos jovenes jovencitas pilladas masturbandose
sexo gratis incesto madre española follando con su hijo
p0rno shemalehd
pareja española follando vidio pirno
incesto xxx maduras lesbianas tetonas
viejas muy calientes abuela enculada
parejitas españolas follando pareja follando en la playa
tetona amateur xxxgay
peliculas porno de incesto gratis incestos jovencitas
xxx prostitutas mujeres fornicando
porno canario bbw abuelas
pajas trans madres que se follan a sus hijos

dataTransfer.setData (“text / html”, ev.target.outerHTML); ev.dataTransfer.setData (“text / uri-list”, ev.target.ownerDocument.location.href); }

  • Pentru o lista a tipurilor de date obisnuite utilizate in drag-and-drop (cum ar fi text, HTML, link-uri si fisiere), consultati Tipuri de tragere recomandate.
  • Pentru mai multe informatii despre date de tragere, consultati date de tragere.

Definiti imaginea de tragere

In mod implicit, browserul furnizeaza o imagine care apare langa indicator in timpul unei operatii de tragere. Cu toate acestea, o aplicatie poate defini o imagine personalizata cu metoda setDragImage (), asa cum se arata in exemplul urmator.

functia dragstart_handler (ev) {let img = new Image (); img.src = ‘example.gif’; ev.dataTransfer.setDragImage (img, 10, 10); }

Aflati mai multe despre tragerea imaginilor de feedback in:

  • Setarea imaginii de feedback Drag

Definiti efectul de tragere

Proprietatea dropEffect este utilizata pentru a controla feedback-ul care i se da utilizatorului in timpul unei operatii de drag-and-drop. De obicei, afecteaza ce cursor afiseaza browserul in timp ce trageti. De exemplu, atunci cand utilizatorul trece peste o tinta de fixare, cursorul browserului poate indica tipul de operatie care va avea loc.

Se pot defini trei efecte:

  1. copia indica faptul ca datele glisate vor fi copiate din locatia actuala in locatia de plecare.
  2. mutarea indica faptul ca datele glisate vor fi mutate din locatia actuala in locatia de fixare.
  3. link-ul indica faptul ca va fi creata o forma de relatie sau conexiune intre locatiile sursa si drop.

In timpul operatiei de tragere, efectele de tragere pot fi modificate pentru a indica faptul ca anumite efecte sunt permise in anumite locatii.

Urmatorul exemplu arata cum sa utilizati aceasta proprietate.

functie dragstart_handler (ev) {ev.dataTransfer.dropEffect = “copiere”; }

Pentru mai multe detalii, consultati:

  • Efecte de tragere

Definiti o zona de scadere

In mod implicit, browserul impiedica orice sa se intample atunci cand scapa ceva pe majoritatea elementelor HTML. Pentru a schimba acest comportament , astfel incat un element devine o zona de cadere sau este cadea , elementul trebuie sa aiba atat ondragover si atributele de tratare a evenimentului ondrop.

Urmatorul exemplu arata cum sa utilizati aceste atribute si include gestionare de evenimente de baza pentru fiecare atribut.

functia <script> dragover_handler (ev) {ev.preventDefault (); ev.dataTransfer.dropEffect = “mutare”; } functie drop_handler (ev) {ev.preventDefault (); const data = ev.dataTransfer.getData (“text / simplu”); ev.target.appendChild (document.getElementById (date)); } </script> <p id = “target” ondrop = “drop_handler (event)” ondragover = “dragover_handler (event)”> Drop Zone </p>

Retineti ca fiecare handler apeleaza preventDefault () pentru a preveni procesarea suplimentara a evenimentelor pentru acest eveniment (cum ar fi evenimente tactile sau evenimente pointer).

Pentru mai multe informatii, consultati:

  • Specificarea obiectivelor Drop

Manipulati efectul de scadere

Handlerul pentru evenimentul drop este liber sa proceseze datele de tragere intr-un mod specific aplicatiei.

De obicei, o aplicatie foloseste metoda getData () pentru a prelua elemente de glisare si apoi pentru a le procesa in consecinta. In plus, semantica aplicatiei poate diferi in functie de valoarea dropEffect si / sau de starea tastelor modificatoare.

Urmatorul exemplu arata un handler de preluare care obtine id-ul elementului sursa din datele de tragere si apoi foloseste id-ul pentru a muta elementul sursa in elementul drop:

functia <script> dragstart_handler (ev) {ev.dataTransfer.setData („aplicatie / aplicatia mea”, ev.target.id); ev.dataTransfer.effectAllowed = “mutare”; } functie dragover_handler (ev) {ev.preventDefault (); ev.dataTransfer.dropEffect = “mutati”} functie drop_handler (ev) {ev.preventDefault (); const data = ev.dataTransfer.getData (“aplicatie / aplicatia mea”); ev.target.appendChild (document.getElementById (date)); } </script> <p id = “p1” draggable = “true” ondragstart = “dragstart_handler (event)”> Acest element este glisabil. </p> <div id = “target” ondrop = “drop_handler (event)” ondragover = “dragover_handler (event)”> Drop Zone </div>

Pentru mai multe informatii, consultati:

  • Efectuarea unei picaturi

Trageti capatul

La sfarsitul unei operatii de tragere, evenimentul dragend se declanseaza asupra elementului sursa – elementul care a fost tinta pornirii de tragere.

Acest eveniment se declanseaza indiferent daca tragerea a fost finalizata sau a fost anulata. Gestionarul de evenimente dragend poate verifica valoarea proprietatii dropEffect pentru a determina daca operatia de tragere a reusit sau nu.

Pentru mai multe informatii despre gestionarea sfarsitului unei operatii de tragere, consultati:

  • Finalizarea unei trageri

Interoperabilitate

Exemple si demonstratii

Specificatii

Vezi si