recent, am făcut saltul de la crearea aplicațiilor fullstack Ruby la lucrul cu Javascript. După cum probabil știți deja, Javascript permite utilizatorilor sau clienților să interacționeze cu o pagină web și să redea dinamic conținut nou DOM pe baza interactivității utilizatorului. În comparație cu codificarea în Ruby on Rails (în care fiecare rerender necesită o reîmprospătare completă a paginii), abilitatea de a rerender diverse elemente de pagină bazate pe interacțiunile utilizatorilor cu Javascript mi-a adus abilitățile de dezvoltare frontend din 1994 și în prezent. Cu înțelegerea mea rudimentară a Javascript-ului, acum pot crea un element web interactiv pe care așteptam cu nerăbdare să îl implementez în proiectele mele: cutii de mesaje — sau ferestre pop-up.
o casetă modală sau de dialog este o casetă de mesaj care apare în browser după o anumită interactivitate specificată a utilizatorului. Înainte de a ne arunca cu capul în specificul creării unei casete modale pentru site-ul dvs. cu HTML, CSS și Javascript, să examinăm mai întâi diferitele tipuri de casete de mesaje pe care le puteți întâlni.
alerte
o alertă este o casetă de mesaje, de obicei blocată în browser, care necesită un răspuns sau o interacțiune a utilizatorului înainte de a putea fi respinsă și dispare din pagină. Poate doriți ca clientul să recunoască informații (Termeni de utilizare) sau pagina în sine confirmă completarea unui formular. Cu toate acestea, până la respingerea alertei, clientul nu poate interacționa cu restul paginii.
modal / casetă de dialog
în cele din urmă, o casetă modală sau de dialog este o casetă de mesaj care permite o interactivitate suplimentară a paginii fără a naviga departe de conținutul curent din browser. O casetă modală nu este blocată pe ecran (adică., Clientul poate naviga departe de acesta fără o interacțiune necesară), deși este de obicei focalizarea utilizatorului (pe baza stilului dvs. de cutie). În cele mai multe cazuri, dacă un utilizator dorește să respingă Modalul, poate pur și simplu să închidă caseta cu un buton furnizat sau să facă clic în afara modalului. Un exemplu de modal este atunci când un utilizator trebuie să completeze un formular sau să furnizeze informații specifice pentru o interogare de căutare, dar nu doriți ca acesta să navigheze la o altă pagină.
Modal/casetă de Dialog
implementarea unui modal
pentru a crea și implementa un modal pe pagina dvs., există trei pași pe care trebuie să îi parcurgeți pentru funcționalitate:
- HTML: markup pentru a crea elementul modal
- CSS: styling pentru a determina modul în care modul dvs. arată și apare pe pagina
- JavaScript: plasarea ascultătorilor de evenimente astfel încât Modalul să apară / să dispară în funcție de interactivitatea utilizatorului
HTML
pentru cele mai simple moduri, avem nevoie de un buton (sau orice element de pagină preferați) pe care un utilizator poate face clic pentru a activa Modalul, Modalul real și probabil veți dori să implementați un buton de închidere în modal.
<button> click me, I make a modal</button><div class="modal">
<div class="modal-content">
<span class="close-btn">×</span>
<p>this is the text inside the modal</p>
</div>
</div>
în cele de mai sus, puteți vedea că avem un buton care va apărea în HTML-ul nostru, precum și un modal a, cu trei clase CSS: modal
modal-btn
și close-btn
. Fiecare dintre acestea vor fi incluse în CSS de mai jos. Primul div este containerul părinte care conține întregul modal cu o clasă de modal
. Pe plan intern, avem un div care conține conținutul pentru modal în sine: butonul pentru a închide modal în span
și textul într-un p
tag.
ca o scurtă deoparte, puteți implementa, de asemenea, anteturi și subsoluri în modal prin crearea pur și simplu mai multe divs în HTML și alte clase CSS în scopuri de styling. De exemplu:
<div class="modal">
<div class="modal-header">
<span class="close-btn">×</span>
<h1>I am the Header</h1>
</div>
<div class="modal-content">
<p>this is the text inside the modal</p>
</div>
<div class="modal-footer">
<h2>I am the Footer</h2>
</div>
</div>
CSS
pentru a stiliza fiecare dintre elementele din HTML-ul nostru modal simplu, trebuie să creăm clasele CSS asociate: .modal
.modal-content
și .close-btn
. Mai mult, puteți vedea mai jos că există, de asemenea, CSS inclus pentru a crea animație pentru modal.
.modal {
display: none;
position: fixed;
padding-top: 50px;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgb(0, 0, 0);
background-color: rgba(0, 0, 0, 0.5);
}.modal-content {
position: relative;
background-color: white;
padding: 20px;
margin: auto;
width: 75%;
-webkit-animation-name: animatetop;
-webkit-animation-duration: 0.4s;
animation-name: animatetop;
animation-duration: 0.4s
}.close-btn {
float: right;
color: lightgray;
font-size: 24px;
font-weight: bold;
}.close-btn:hover {
color: darkgray;
}@-webkit-keyframes animatetop {
from {top:-300px; opacity:0}
to {top:0; opacity:1}
}@keyframes animatetop {
from {top:-300px; opacity:0}
to {top:0; opacity:1}
}
în clasele de mai sus, avem stil pentru fiecare dintre elementele pe care le-am creat în HTML-ul nostru.
.modal
clasa în sine are atribute care determină modul în care tratează pagina din spatele modal în sine: o lățime și înălțime în comparație cu pagina din spatele casetei de dialog, o culoare (acest exemplu folosește un gri semi-opac) și o setare de vizibilitate, astfel încât să o putem comuta în Javascript-ul nostru atunci când un utilizator face clic pe buton.
pentru caseta de dialog propriu-zisă, avem și un stil separat în .modal-content
: poziționându-l pe stilul de fundal, o culoare de fundal pentru caseta de dialog în sine, umplutură, iar în acest exemplu există animație inclusă, astfel încât Modalul să scadă din partea de sus a paginii.
Mai departe, am stilat o.close-btn
clasa care plutește un”x”la dreapta, și cu.close-btn:hover
, atunci când utilizatorul planează peste butonul de închidere, Culoarea se va schimba. Pentru claritate, utilizatorul poate face clic în afara modalului pentru a închide caseta de dialog la fel ca făcând clic pe butonul închidere. Vom crea un ascultător de evenimente pentru ambele opțiuni în Javascript-ul nostru.
Acest lucru abia zgârie suprafața CSS pe care ați putea să o implementați pe cont propriu. Simțiți-vă liber să ajustați codul de mai sus pentru a se potrivi cel mai bine nevoilor dvs.
Javascript
În cele din urmă, avem nevoie pentru a scrie unele Javascript pentru a crea funcționalitatea modal.
let modalBtn = document.getElementById("modal-btn")let modal = document.querySelector(".modal")let closeBtn = document.querySelector(".close-btn")modalBtn.onclick = function(){
modal.style.display = "block"
}closeBtn.onclick = function(){
modal.style.display = "none"
}window.onclick = function(e){
if(e.target == modal){
modal.style.display = "none"
}
}
am selectat mai multe obiecte din HTML-ul nostru și le-am atribuit variabilelor: a modal-btn
modal
în sine și close-btn
. Apoi, am creat ascultători de evenimente pentruonclick
evenimente. Când un utilizator face clic pe modal-btn
, stilul de afișare este setat la "block”
, dar când face clic pe close-btn
sau fereastra din afara modalului (reprezentată în stilul nostru ca gri semi-opac), stilul de afișare este apoi setat la "none"
. Acest lucru ascunde în mod eficient modal până când faceți clic pe modal-btn
din nou.
Modal imprimat pe ecran
în general, joc cu dom cu JavaScript a fost incredibil de distractiv și plină de satisfacții ca un coder început. Sperăm că codul de mai sus vă va ajuta să implementați modalele și casetele de mesaje pe cont propriu. Cu unele Googling rapid, puteți găsi, de asemenea, resurse suplimentare pentru a ajusta modalele și casetele de dialog pentru cazurile de utilizare.
mult noroc acolo, și de codificare fericit!