Multe procese de pe web în zilele noastre necesită consimțământul deplin al utilizatorilor pentru a fi finalizate. De exemplu, este posibil ca utilizatorii să aibă nevoie să elimine un cont, să își schimbe numele de utilizator sau să confirme o tranzacție monetară.
O abordare comună UX în astfel de cazuri este afișarea unei casete de dialog, de obicei cu două butoane; unul pentru anulare și unul pentru a continua acțiunea. Ne-am bazat pe bibliotecile JavaScript pentru a face acest lucru de ani de zile, cu toate acestea, în acest tutorial vom face lucruri nativă cu experimental element.
Suportul browserelor (Chrome 37+ și Opera 27+) va reda Este demn de remarcat faptul că În cele mai multe cazuri, este probabil că vom folosi comoditatea Caseta de dialog poartă stilul implicit al browserelor, care poate fi ușor înlocuit ca majoritatea celorlalte elemente. Puteți, de exemplu, să faceți fereastra de dialog mai subțire, să faceți colțurile rotunjite și să adăugați umbră. În plus, atunci când Este obișnuit să stilul fundalului cu o culoare opacitate scăzută - faceți clic pe butonul roșu pentru ao vedea în acțiune: Particularizarea stilurilor din caseta de dialog trebuie să fie simplă, dar cum să adăugați tranziția CSS? Ce zici de a dezvălui treptat caseta de dialog, utilizând un efect de scalare, mai mult sau mai puțin cum o face OS X? În primul rând, vom scala dialogul în jos cu 90%, vom specifica tranziția și l-am scos din vedere. Acum definim un selector de clasă care va scala caseta de dialog până la dimensiunea dorită și o va face vizibilă. Noastră truc este acum că vom "ține" caseta de dialog la scară mică pentru câteva milisecunde înainte de a adăuga clasa Să nu uităm să eliminăm această clasă și să ștergem timpul de expirare când caseta de dialog este închisă. Suntem cu toții pregătiți! Puteți da o plimbare în următorul demo: Până atunci, puteți utiliza polifluziunea din Google Chrome pentru a o simula în browserele care nu sunt compatibile. este un element HTML5 (5.1 pentru a fi exact). Este clasificat ca o "rădăcină de secționare", similară cu
,
, si
elemente, fiecare dintre acestea stabilind independent o nouă secțiune de conținut. Puteți să-l plasați ca un copil al corpului sau să îl cuiți într-un element ca a -ambele abordări sunt valide.
element ascuns în mod implicit, făcând-o vizibilă numai la cerere, folosind JavaScript
spectacol()
sau showModal ()
, si închide()
pentru ao ascunde din nou. De obicei, vom rula această metodă într - un clic
eveniment, cum ar fi:var $ accountDelete = $ ('delete-account'), $ accountDeleteDialog = $ ('# confirm-delete'); $ accountDelete.on ("clic", functie () $ accountDeleteDialog [0] .showModal ();); $ ('cancelare') pe ('click', function () $ accountDeleteDialog [0] .close (););
spectacol()
v. showModal ()
Metodăspectacol()
și showModal ()
se comporta diferit.spectacol()
metoda dezvăluie elementul în funcție de poziția sa în fluxul DOM. Dacă ați adăugat-o imediat înaintea etichetei de închidere a corpului, aceasta poate apărea în partea de jos a paginii Web. Va trebui să adăugăm stiluri personalizate pentru a-și ajusta poziția, de exemplu, dacă vrem să o poziționăm centrat pe pagină. Aceste stiluri ar folosi de obicei z-index
pentru a stivui elementul deasupra celorlalte elemente, poziţie
proprietate setat la absolut
, impreuna cu stânga
și top
.showModal ()
metoda, pe de altă parte, va afișa elementul ca modal. Acesta va fi afișat în centrul paginii în mod implicit și se află în stratul superior, cum ar fi API-ul fullScreen, care împiedică interferența prin z-index
, poziția relativă și deversarea elementului părinte.showModal ()
in loc de spectacol()
metodă.Personalizarea stilurilor
elementul este prezentat ca modal (folosind
showModal ()
metoda), avem un pseudo-element suplimentar, :: fundal
, la dispoziția noastră. :: fundal
elementul se află imediat sub caseta de dialog, acoperind întreaga fereastră de vizualizare și restul elementelor dedesubt.Adăugarea lui Flair cu tranziții
Pasul 1
dialog visibility: hidden; transform: scară (0,1); tranziție: transformare 200 ms;
Pasul 2
dialog.dialog-scale vizibilitate: vizibil; transformare: scară (1);
Pasul 3
Scară de dialog
. Pentru a realiza acest lucru folosim JavaScript setTimeout ()
metoda de adăugare a clasei:var tranziție; $ accountDelete.on ('click', function () $ contDeleteDialog [0] .showModal (); transition = setTimeout (functie () $ accountDeleteDialog.addClass; ;
Pasul 4
$ ('cancelare') pe ('click', functie () $ contDeleteDialog [0] .close (); $ accountDeleteDialog.removeClass ("dialog-scale");
Înfășurarea în sus
este într-adevăr la îndemână, deși încă foarte slabă în ceea ce privește suportul browserului. Dacă și când toate browserele majore l-au implementat, vom fi mai puțin dependenți de biblioteci, structura noastră de conținut va fi mai semantică, accesibilă în mod corespunzător tehnologiei de asistență și vom avea un mod standard de a furniza dialoguri modale.
Resurse suplimentare