De Sharlene Khan

Crearea propriei bare de căutare cu completare automată este mai ușor decât credeți.

Cititorii ca tine ajută la sprijinirea MUO. Când efectuați o achiziție folosind link-uri de pe site-ul nostru, este posibil să câștigăm un comision de afiliat. Citeşte mai mult.

O bară de căutare este un element popular de interfață pe care îl folosesc multe site-uri web moderne. Dacă construiți un site care conține orice tip de date, poate doriți ca utilizatorii să poată căuta anumite elemente.

Există multe moduri în care puteți construi o bară de căutare. Puteți crea bare de căutare complexe care returnează rezultate pe baza mai multor filtre, cum ar fi un nume sau o dată. Bibliotecile existente vă pot ajuta să implementați o bară de căutare fără a o construi de la zero.

Cu toate acestea, puteți crea și o bară de căutare simplă folosind JavaScript vanilla, care compară intrarea unui utilizator cu o listă de șiruri.

Cum să adăugați interfața de utilizare pentru bara de căutare

instagram viewer

Site-ul dvs. ar trebui să includă o casetă de introducere pentru ca utilizatorii să introducă textul pe care doresc să îl caute. O modalitate de a face acest lucru este să utilizați o etichetă de intrare și să o stilați astfel încât să arate ca o bară de căutare.

  1. Creați un folder pentru a vă stoca site-ul web. În interiorul folderului, creați un fișier HTML numit index.html.
  2. Completați fișierul cu structura de bază a unui document HTML. Dacă nu sunteți familiarizat cu HTML, există multe Exemple de cod HTML pe care le puteți învăța să te ajute să ajungi la viteză.
    <!doctype html>
    <html lang="ro-SUA">
    <cap>
    <titlu>Bara de căutare</title>
    </head>
    <corp>
    <div class="recipient">
    <!-- Conținutul paginii web ajunge aici-->
    </div>
    </body>
    </html>
  3. În interiorul clasei container div, adăugați o etichetă de intrare. Acest lucru va permite utilizatorului să introducă textul pe care ar dori să îl caute. Ori de câte ori introduc un caracter nou, site-ul dvs. va apela funcția de căutare(). Veți crea această funcție în pașii ulterioare.
    <div class="recipient">
    <h2>Căutați țări</h2>
    <ID de intrare ="bara de căutare" autocompletare="oprit" onkeyup="căutare()" tip="text"
    nume="căutare" substituent="Ce căutați?">
    </div>
    Atributul de completare automată asigură că un browser nu își va adăuga propriul meniu derulant bazat pe termenii de căutare anteriori.
  4. În același folder ca dvs index.html fișier, creați un nou fișier CSS numit stiluri.css.
  5. Completați fișierul cu stilul pentru întreaga pagină web și bara de căutare:
    corp {
    marja: 0;
    umplutură: 0;
    culoare de fundal: #f7f7f7;
    }
    * {
    familie de fonturi: "Arial", sans-serif;
    }
    .container {
    umplutură: 100px 25%;
    display: flex;
    flex-direcție: coloană;
    linie-inaltime: 2rem;
    marimea fontului: 1.2em;
    culoare: #202C39;
    }
    #bara de căutare {
    umplutură: 15px;
    chenar-rază: 5px;
    }
    intrare[tip=text] {
    -webkit-tranziție: lăţime 0.15sușurință-in-out;
    tranziție: lăţime 0.15sușurință-in-out;
    }
  6. În index.html, adăugați un link către fișierul dvs. CSS în interiorul etichetei head și sub eticheta titlu:
    <link rel="foaia de stil" href="stiluri.css">
  7. Deschide index.html fișier într-un browser web și vizualizați interfața de utilizare a barei de căutare.

Cum se creează șirurile de listă pentru bara de căutare

Înainte ca utilizatorul să poată căuta, va trebui să creați o listă de articole disponibile pe care le poate căuta. Puteți face acest lucru cu o serie de șiruri. O sfoară este una dintre multe tipuri de date pe care le puteți utiliza în JavaScript, și poate reprezenta o secvență de caractere.

Puteți crea dinamic această listă folosind JavaScript, deoarece pagina se încarcă.

  1. Interior index.html, sub eticheta de intrare, adăugați un div. Acest div va afișa un meniu derulant care va conține o listă de articole care se potrivesc cu ceea ce caută utilizatorul:
    <div id="listă"></div>
  2. În același folder ca dvs index.html dosar și stiluri.css fișier, creați un fișier nou numit script.js.
  3. Interior script.js, creați o nouă funcție numită loadSearchData(). În interiorul funcției, inițializați o matrice cu o listă de șiruri. Rețineți că aceasta este o mică listă statică. O implementare mai complexă va trebui să ia în considerare căutarea prin seturi de date mai mari.
    funcţieloadSearchData() {
    // Date care vor fi folosite în bara de căutare
    lăsa țări = [
    'Australia',
    'Austria',
    'Brazilia',
    'Canada',
    'Danemarca',
    'Egipt',
    'Franţa',
    'Germania',
    'STATELE UNITE ALE AMERICII',
    'Vietnam'
    ];
    }
  4. În interiorul loadSearchData() și sub noua matrice, obțineți elementul div care va afișa utilizatorului elementele de căutare potrivite. În interiorul div-ului listei, adăugați o etichetă de ancorare pentru fiecare element de date din listă:
    // Obține elementul HTML al listei
    lăsa lista = document.getElementById('listă');
    // Adăugați fiecare element de date ca un etichetă
    ţări.pentru fiecare((țara)=>{
    lăsa a = document.createElement("a");
    a.innerText = tara;
    a.classList.add("listItem");
    listă.appendChild (a);
    })
  5. În eticheta corporală a index.html, adăugați atributul evenimentului onload pentru a apela noua funcție loadSearchData(). Aceasta va încărca datele pe măsură ce pagina se încarcă.
    <încărcare corporală="loadSearchData()">
  6. În index.html, înainte ca eticheta body să se încheie, adăugați o etichetă de script pentru a face legătura la fișierul JavaScript:
    <încărcare corporală="loadSearchData()">
    <!-- Conținutul paginii dvs. web -->
    <script src="script.js"></script>
    </body>
  7. În stiluri.css, adăugați un stil la lista derulantă:
    #list {
    chenar: 1px gri deschis continuu;
    chenar-rază: 5px;
    afisare: bloc;
    }
    .listItem {
    display: flex;
    flex-direcție: coloană;
    text-decor: niciuna;
    umplutură: 5px 20px;
    culoarea neagra;
    }
    .listItem:planare {
    culoare de fundal: gri deschis;
    }
  8. Deschis index.html într-un browser web pentru a vizualiza bara de căutare și lista rezultatelor căutării disponibile. Funcționalitatea de căutare nu funcționează încă, dar ar trebui să vedeți interfața de utilizare pe care o va folosi:

Cum să creați meniul derulant cu rezultate potrivite în bara de căutare

Acum că aveți o bară de căutare și o listă de șiruri pe care utilizatorii să le caute, puteți adăuga funcționalitatea de căutare. Pe măsură ce utilizatorul scrie în bara de căutare, se vor afișa numai anumite elemente din listă.

  1. În stiluri.css, înlocuiți stilul pentru listă pentru a ascunde lista în mod implicit:
    #list {
    chenar: 1px gri deschis continuu;
    chenar-rază: 5px;
    afișaj: niciunul;
    }
  2. În script.js, creați o nouă funcție numită search(). Rețineți că programul va apela această funcție de fiecare dată când utilizatorul introduce sau șterge un caracter din bara de căutare. Unele aplicații vor avea nevoie de călătorii la un server pentru a prelua informații. În astfel de cazuri, această implementare ar putea încetini interfața de utilizare. Poate fi necesar să modificați implementarea pentru a ține cont de acest lucru.
    funcţiecăutare() {
    // Funcționalitatea de căutare merge aici
    }
  3. În interiorul funcției search(), obțineți elementul HTML div pentru listă. Obțineți, de asemenea, elementele etichetei de ancorare HTML ale fiecărui element din listă:
    lăsa listContainer = document.getElementById('listă');
    lăsa listItems = document.getElementsByClassName('listItem');
  4. Obțineți intrarea introdusă de utilizator în bara de căutare:
    lăsa intrare = document.getElementById('bara de căutare').value
    input = input.toLowerCase();
  5. Comparați intrarea utilizatorului cu fiecare element din listă. De exemplu, dacă utilizatorul introduce „a”, funcția va compara dacă „a” este în „Australia”, apoi „Austria”, „Brazilia”, „Canada” și așa mai departe. Dacă se potrivește, va afișa acel element în listă. Dacă nu se potrivește, va ascunde acel element.
    lăsa noResults = Adevărat;
    pentru (i = 0; i < listItems.lungime; i++) {
    if (!listItems[i].innerHTML.toLowerCase().includes (input) || input "") {
    listItems[i].style.display="nici unul";
    continua;
    }
    altfel {
    listItems[i].style.display="contracta";
    noResults = fals;
    }
    }
  6. Dacă nu există niciun rezultat în listă, ascundeți lista complet:
    listContainer.style.display = noResults? "nici unul": "bloc";
  7. Faceți clic pe index.html fișier pentru a-l deschide într-un browser web.
  8. Începeți să tastați în bara de căutare. Pe măsură ce tastați, lista de rezultate se va actualiza pentru a afișa numai rezultatele care se potrivesc.

Utilizarea unei bare de căutare pentru a căuta rezultate potrivite

Acum că știți cum să creați o bară de căutare cu selecție de șiruri, puteți adăuga mai multe funcționalități.

De exemplu, puteți adăuga link-uri la etichetele de ancorare pentru a deschide pagini diferite, în funcție de rezultatul pe care îl face clic pe utilizator. Puteți schimba bara de căutare pentru a căuta prin obiecte mai complexe. De asemenea, puteți modifica codul pentru a lucra cu cadre precum React.

Aboneaza-te la newsletter-ul nostru

Comentarii

AcțiuneTweetAcțiuneAcțiuneAcțiune
Copie
E-mail
Distribuie acest articol
AcțiuneTweetAcțiuneAcțiuneAcțiune
Copie
E-mail

Link copiat în clipboard

Subiecte asemănătoare

  • Programare
  • Programare
  • Dezvoltare web
  • JavaScript

Despre autor

Sharlene Khan(65 articole publicate)

Shay lucrează cu normă întreagă ca dezvoltator de software și îi place să scrie ghiduri pentru a-i ajuta pe alții. Ea are o licență în IT și are experiență anterioară în asigurarea calității și tutorat. Shay îi place să joace și să cânte la pian.