Cel mai simplu este să iei ceva și să-l pui, decât să scrii, ce să iei și unde să-l pui. Desigur, fără un mouse sau un dispozitiv similar, nu puteți alege nimic și nu indica nimic, dar chiar și în situația actuală, utilizarea ideii de „glisare și fixare” este foarte naturală și confortabilă.
Domeniul de aplicare al ideii este departe de a fi doar magazine online, biblioteci electronice, motoare de căutare sau Sisteme de informare, dar și sfera aplicată. Ideea este foarte aplicabilă în dezvoltarea site-urilor și a elementelor acestora, create și întreținute interactiv, fără participarea unui programator.
Descrierea ideii
Selectați, mutați și plasați - ideea este naturală și convenabilă. Este uimitor că nu s-a născut când mouse-ul a devenit un accesoriu indispensabil pentru computer.
Cel mai evident exemplu este alegerea unui produs într-un magazin online. Luarea produsului dorit cu mouse-ul și tragerea acestuia în coșul de cumpărături este simplă, naturală și convenabilă. Încărcarea fișierelor: Luarea unui document în afara ferestrei browserului și plasarea lui pe un element de pagină, inițiind astfel transferul documentului pe server, este, de asemenea, o idee practică.
Pentru dezvoltator, ideea „trageți și plasați” este manipularea elementelor paginii fără a recalcula manual coordonatele și dimensiunile etichetelor, capacitatea de a selecta mai multe elemente și de a le alinia, precum și de a muta părțile laterale ale etichetelor bloc.
HTML și CSS - limbi grozave descrieri ale etichetelor și stilurilor designului lor, dar atunci când un dezvoltator are capacitatea de a manipula interactiv elementele paginii fără a recalcula manual coordonatele și dimensiunile, acest lucru face munca mai confortabilă și mai eficientă.
Transfer ușor de fișiere
„Drag and drop”: traducerea din engleză în rusă sună literalmente „drag and drop”. În practică, sună și funcționează mai bine: alegeți, transferați și eliberați - simplu și natural.
Este foarte simplu de implementat pe o pagină transferul de fișiere pe o pagină, pe un server sau pentru alte utilizări.
În acest exemplu, mai multe fișiere de pe desktop au fost selectate cu mouse-ul (imaginea din stânga). La selecție, butonul stâng al mouse-ului a fost apăsat și selectat „a mers” la coș. Browserul însuși a arătat cum se întâmplă acest lucru, a scris un indiciu „copie” și a creat contururile fișierelor pentru a fi mutate.
Când mouse-ul a fost peste coș, vizitatorul a eliberat butonul stâng al mouse-ului, a avut loc evenimentul drag-and-drop și codul JavaScript de pe pagina site-ului (imaginea de jos) a putut să primească și să proceseze toate fișierele pe care vizitatorul le-a furnizat. către pagină (site).
Descrierea implementării
Codul care realizează această procedură este foarte simplu. Chiar și un dezvoltator începător îl poate repeta în orice caz de utilizare.
Aici interfața cu utilizatorul este reprezentată de două etichete: scPlaceFile (acesta este coșul în sine, unde trebuie să puneți fișiere) și scPlaceFiles (acesta este rezultatul procesării fișierelor, în acest caz o listă a acestora).
Logica paginii este următoarea. Când pagina este încărcată în browser, handlerul de evenimente „ondrop” este alocat în coș - pentru a pune, restul evenimentelor sunt blocate și nu sunt folosite.
Pagina funcționează în modul normal, dar de îndată ce vizitatorul selectează fișierul (fișierele) și le trage pe imaginea coșului, adică la eticheta scPlaceFile, va începe procesarea evenimentului „fișiere sosite”.
Acest handler afișează pur și simplu o listă de fișiere. Numărul lor este în event.dataTransfer.files.length, iar informațiile despre fiecare fișier sunt în event.dataTransfer.files [i] .name. Ce să faceți cu datele primite este determinat de dezvoltator; în acest caz, se formează pur și simplu o listă a fișierelor primite.
Odată procesat, evenimentul este blocat și nu este propagat. Acest lucru este necesar pentru ca browserul să nu desfășoare activități independente și să nu interfereze cu prelucrarea informațiilor primite.
DnD și date externe
Încărcarea imaginilor pe un server folosind drag and drop este o practică obișnuită în această tehnologie. De obicei, dezvoltatorul creează un formular de încărcare a fișierelor (1) care funcționează în mod obișnuit (2). Vizitatorul poate intra Mod normal selectați fișierele și încărcați-le.
Totuși, dacă vizitatorul dintr-un anumit loc din formular face „glisare și plasare”, atunci câmpul de nume fișier(e) va fi completat automat.
Acest buna decizie... Este, desigur, foarte greu de recunoscut că nu există mouse pe computer. Dar este mai bine să proiectați interfața cu utilizatorul într-un mod regulat și într-o implementare DnD.
DnD și date interne
A avea grijă de interesele vizitatorului este întotdeauna importantă, dar și preocupările dezvoltatorului contează. Drag and drop poate fi implementat nu numai prin mijloace standard, ci și prin gestionarea evenimentelor mouse-ului pe elementele paginii.
Sarcina de a calcula valorile coordonatelor etichetelor și dimensiunile acestora apare în mod constant. Calculul manual este o practică bună, dar opțiunea interactivă este mai convenabilă. Toate etichetele sunt întotdeauna dreptunghiulare și, urmărind evenimentele mouse-ului pe părțile laterale ale elementelor, puteți crea posibilitatea de a muta automat elementele în locul potrivit pe pagină sau de a le modifica.
Gestionarea evenimentului de clic pe un buton al mouse-ului - stocarea coordonatele locului clicului, de exemplu, una dintre laturile unui element. Mutați mouse-ul - partea laterală se mișcă în direcția dorită. Eliberarea butonului mouse-ului - partea laterală se oprește și coordonatele sale se schimbă. În acest fel puteți modifica poziția elementului sau dimensiunea acestuia.
Acest lucru nu este în mod oficial „glisare și fixare”, dar efectul este similar și practic. Făcând handlere universale pentru orice element de pagină, puteți obține rezultate interactive bune, puteți accelera dezvoltarea și puteți simplifica codul.
Programare vizuală și manuală
Un mouse pe un computer și degetele pe un smartphone sunt abordări complet diferite pentru implementarea unei interfețe cu utilizatorul (vizitator, dezvoltator). Aceasta este o cerință naturală și modernă pentru compatibilitatea între browsere.
Toate acestea împreună fac dificilă crearea paginilor, dar aplicând ideea de „glisare și plasare” în ea forma standard folosind evenimentele sale, combinând această idee cu evenimente obișnuite pe elemente, puteți implementa un mecanism în care crearea paginii va avea loc vizual.
Acum să ne uităm la selecția unui articol sau articole. Faptul de selecție este apariția unui meniu contextual, de exemplu, scopul este alinierea celor selectați (stânga, dreapta, centru), sau distribuirea elementelor pe verticală sau orizontală cu același pas, sau modificarea dimensiunilor acestora (minim, maxim) .
Recalcularea automată a coordonatelor și dimensiunilor este de preferată recalculării manuale. Mai puține greșeli - obiectivul este atins mai repede. În plus, puteți face o pagină într-un singur browser, salvați poziția și dimensiunea elementelor. După ce ați deschis această pagină pe un smartphone, puteți corecta valorile coordonatelor și dimensiunilor și le puteți aminti pentru model specific versiunea pentru smartphone sau browser.
Așadar, aceeași pagină fără respectarea manuală a cerinței între browsere va avea date diferite de afișat diferite dispozitiveși în diverse browsere.
Dacă permiteți vizitatorului să efectueze singur aceste proceduri, precum și să selecteze elementele de pagină necesare dintre cele furnizate de dezvoltator, puteți asigura compatibilitatea între browsere și funcționalitatea necesară a paginii, ținând cont de opinia utilizatorului .
Funcția de glisare și plasare poate ajuta la creșterea performanței iPad-ului. Iată cum îl puteți folosi.
Astfel, puteți muta un fișier dintr-un serviciu de stocare în cloud în altul, puteți copia text din Safari într-o aplicație de editare a textului pentru a adăuga un citat sau a crea backup anumite fotografii în aplicația de stocare a fișierelor.
Cum să glisați și să plasați fotografii, fișiere și text
1. Atingeți lung o fotografie, un fișier sau un text evidențiat pe care doriți să-l trageți într-o altă aplicație.
2. Trageți elementul în locația dorită în această anexă sau altul pe care l-ați deschis în modul „Slide Over” sau „Split View” și eliberați.
Cum să glisați și să plasați mai multe fotografii sau fișiere în același timp
1. Atingeți lung una dintre fotografiile sau fișierele pe care doriți să le trageți.
2. În timp ce trageți elementul curent, atingeți o altă fotografie sau fișier pe care doriți să îl trageți. Faceți-o din nou cu câte articole doriți să mutați.
3. Trageți toate obiectele selectate în locația desemnată într-o altă aplicație pe care ați deschis-o în Slide Over sau Split View și eliberați-le.
Cum să trageți text dintr-o aplicație în alta
1. Atingeți și mențineți apăsată partea de text pe care doriți să o trageți pentru a o selecta.
2. Utilizați punctele de selecție pentru a selecta restul textului pe care doriți să-l trageți.
3. Apăsați și mențineți apăsat textul evidențiat.
4. Trageți textul în aplicația în care doriți să îl plasați și eliberați-l.
Cum să schimbați aranjamentul pictogramelor mai multor aplicații simultan folosind „Drag and Drop”
În timp ce majoritatea funcționalității de glisare și plasare din iOS funcționează numai pe iPad, acest truc funcționează de fapt atât pe iPhone, cât și pe iPad. Acest lucru vă permite să organizați aranjarea aplicațiilor pe ecranul de pornire folosind « Trageți și plasați ”în loc să le mutați unul câte unul.
1. Apăsați și mențineți apăsată pictograma aplicației pe care doriți să o repoziționați pe ecranul de start.
2. Atingeți și aplicațiile suplimentare pe care doriți să le mutați.
3. Trageți aceste aplicații în pagina sau folderul în care doriți să fie și eliberați-le.
182
În acest exemplu, selectăm elementul div și îl facem flotabil prin apelare metoda dragable ().... După cum se arată în figura de mai jos, în documentul deschis, elementul își ia poziția normală, dar după aceea poate fi mutat cu cursorul mouse-ului în orice loc din fereastra browserului:
Funcția de glisare și plasare este utilă singură, dar este și mai utilă atunci când este utilizată împreună cu interacțiunea Droppable, care este descrisă mai jos.
Interacțiunea Draggable este implementată numai prin utilizarea unor stiluri specifice de marcare HTML și CSS. Aceasta înseamnă că această funcționalitate va funcționa în aproape orice browser, dar elementele dotate cu ea nu vor putea funcționa cu instrumente native similare de tip drag-and-drop. sisteme de operare.
Operațiile de tip drag-and-drop definite de specificația HTML5 sunt de obicei implementate folosind mecanismele native ale sistemelor de operare. Dacă utilizați mecanismul de glisare și plasare din jQuery UI, cel mai bine este să dezactivați echivalentele HTML5 pentru a evita conflictele. În acest scop, setați atributul draggable al elementului de corp al documentului la false.
Configurarea interacțiunii prin glisare
Există multe opțiuni de personalizare pentru interacțiunea Draggable. Cele mai importante proprietăți, care sunt discutate în următoarele secțiuni, sunt rezumate în tabelul de mai jos:
Proprietate | Descriere |
---|---|
axă | Limitează mișcarea în direcții specifice. Valoarea implicită este false, ceea ce înseamnă că nu există constrângeri, dar puteți specifica și valoarea „x” (deplasați numai de-a lungul axei X) sau „y” (deplasați doar de-a lungul axei Y) |
izolare | Constrânge poziția elementului plutit la o anumită zonă a ecranului. Tipurile de valori acceptate sunt descrise în tabelul de mai jos, folosind exemplul corespunzător. Valoarea implicită este false, ceea ce înseamnă că nu există restricții |
întârziere | Stabilește cât timp trebuie să fie tras un element înainte de a se mișca. Valoarea implicită este 0, ceea ce înseamnă că nu există întârziere |
distanţă | Determină distanța la care utilizatorul trebuie să tragă un element din poziția sa de pornire înainte ca acesta să se miște efectiv. Valoarea implicită este 1 pixel |
grilă | Forțează fixarea elementului mutat în celulele grilei. Valoarea implicită este false, ceea ce înseamnă că nu există nicio legătură |
Limitarea direcțiilor de mișcare
Există mai multe moduri prin care puteți restricționa mișcarea unui element în direcții specifice. Prima este să utilizați opțiunea axă pentru a limita direcția de mișcare la axa X sau Y. Un exemplu este prezentat mai jos:
...