Podle Sharlene Khan

Vytvoření vlastního vyhledávacího pole automatického doplňování je jednodušší, než si myslíte.

Čtenáři jako vy pomáhají podporovat MUO. Když provedete nákup pomocí odkazů na našich stránkách, můžeme získat provizi přidružené společnosti. Přečtěte si více.

Vyhledávací panel je oblíbený prvek uživatelského rozhraní, který využívá mnoho moderních webových stránek. Pokud vytváříte web, který obsahuje jakýkoli typ dat, možná budete chtít, aby vaši uživatelé mohli vyhledávat konkrétní položky.

Existuje mnoho způsobů, jak vytvořit vyhledávací panel. Můžete vytvářet složité vyhledávací panely, které vracejí výsledky na základě více filtrů, jako je název nebo datum. Stávající knihovny vám mohou pomoci implementovat vyhledávací panel, aniž byste jej museli budovat od začátku.

Můžete však také vytvořit jednoduchý vyhledávací panel pomocí vanilkového JavaScriptu, který porovnává vstup uživatele se seznamem řetězců.

Jak přidat uživatelské rozhraní pro vyhledávací panel

instagram viewer

Vaše webová stránka by měla obsahovat vstupní pole, do kterého uživatelé zadají text, který chtějí vyhledat. Jedním ze způsobů, jak toho dosáhnout, je použít vstupní značku a upravit ji tak, aby vypadala jako vyhledávací panel.

  1. Vytvořte složku pro uložení vašeho webu. Uvnitř složky vytvořte soubor HTML s názvem index.html.
  2. Naplňte svůj soubor základní strukturou dokumentu HTML. Pokud nejste obeznámeni s HTML, existuje mnoho Příklady HTML kódu, které se můžete naučit které vám pomohou dostat se do tempa.
    <!doctype html>
    <html jazyk="en-US">
    <hlava>
    <titul>Vyhledávací panel</title>
    </head>
    <tělo>
    <třída div="kontejner">
    <!-- Obsah webové stránky je zde-->
    </div>
    </body>
    </html>
  3. Do prvku div třídy kontejneru přidejte vstupní značku. To umožní uživateli zadat text, který by chtěl vyhledat. Kdykoli zadají nový znak, váš web zavolá funkci search(). Tuto funkci vytvoříte v pozdějších krocích.
    <třída div="kontejner">
    <h2>Hledat země</h2>
    <vstupní id="vyhledávací panel" automatické doplňování="vypnuto" onkeyup="Vyhledávání()" typ="text"
    jméno="Vyhledávání" zástupný symbol="Co hledáš?">
    </div>
    Atribut autocomplete zajišťuje, že prohlížeč nepřidá vlastní rozevírací seznam na základě předchozích vyhledávacích dotazů.
  4. Ve stejné složce jako vaše index.html vytvořte nový soubor CSS s názvem styly.css.
  5. Vyplňte soubor stylem pro celkovou webovou stránku a vyhledávací panel:
    tělo {
    okraj: 0;
    výplň: 0;
    barva pozadí: #f7f7f7;
    }
    * {
    rodina písem: "Arial", bezpatkové;
    }
    .kontejner {
    odsazení: 100px 25%;
    displej: flex;
    směr ohybu: sloupec;
    výška čáry: 2rem;
    velikost písma: 10,2 em;
    barva: #202C39;
    }
    #searchbar {
    odsazení: 15px;
    border-radius: 5px;
    }
    vstup[type=text] {
    -webkit-transition: šířka 00,15 seasy-in-out;
    přechod: šířka 00,15 seasy-in-out;
    }
  6. v index.html, přidejte odkaz na svůj soubor CSS do značky head a pod značku title:
    <odkaz rel="šablona stylů" href="styly.css">
  7. Otevři index.html soubor ve webovém prohlížeči a zobrazte uživatelské rozhraní vašeho vyhledávacího panelu.

Jak vytvořit řetězce seznamu pro vyhledávací panel

Než bude uživatel moci vyhledávat, budete muset vytvořit seznam dostupných položek, které může hledat. Můžete to udělat s polem řetězců. Řetězec je jedním z mnoha datové typy, které můžete použít v JavaScriptu, a může představovat sekvenci znaků.

Tento seznam můžete dynamicky vytvořit pomocí JavaScriptu, jak se stránka načítá.

  1. Uvnitř index.html, pod vstupní značku přidejte div. Tento div zobrazí rozevírací seznam, který bude obsahovat seznam položek, které odpovídají tomu, co uživatel hledá:
    <div id="seznam"></div>
  2. Ve stejné složce jako vaše index.html soubor a styly.css soubor, vytvořte nový soubor s názvem script.js.
  3. Uvnitř script.js, vytvořte novou funkci nazvanou loadSearchData(). Uvnitř funkce inicializujte pole se seznamem řetězců. Mějte na paměti, že se jedná o malý statický seznam. Složitější implementace bude muset počítat s prohledáváním větších datových sad.
    funkceloadSearchData() {
    // Data, která mají být použita ve vyhledávacím panelu
    nechat země = [
    'Austrálie',
    'Rakousko',
    'Brazílie',
    'Kanada',
    'Dánsko',
    'Egypt',
    'Francie',
    'Německo',
    'USA',
    'Vietnam'
    ];
    }
  4. Uvnitř loadSearchData() a pod novým polem získejte prvek div, který uživateli zobrazí odpovídající položky vyhledávání. Do seznamu div přidejte značku ukotvení pro každou datovou položku v seznamu:
    // Získá element HTML seznamu
    nechat seznam = dokument.getElementById('seznam');
    // Přidejte každou datovou položku jako an štítek
    zemí.pro každého((země)=>{
    nechat a = dokument.createElement("a");
    a.innerText = země;
    a.classList.add("listItem");
    seznam.appendChild (a);
    })
  5. Ve štítku těla index.html, přidejte atribut události onload pro volání nové funkce loadSearchData(). Tím se načtou data při načítání stránky.
    <zatížení těla ="loadSearchData()">
  6. v index.html, než značka body skončí, přidejte značku skriptu, která bude odkazovat na váš soubor JavaScript:
    <zatížení těla ="loadSearchData()">
    <!-- Obsah vaší webové stránky -->
    <skript src="script.js"></script>
    </body>
  7. v styly.css, přidejte do rozevíracího seznamu nějaký styl:
    #list {
    ohraničení: 1px plná světle šedá;
    border-radius: 5px;
    displej: blok;
    }
    .listItem {
    displej: flex;
    směr ohybu: sloupec;
    text-dekorace: žádná;
    odsazení: 5px 20px;
    Černá barva;
    }
    .listItem:vznášet se {
    barva pozadí: světle šedá;
    }
  8. OTEVŘENO index.html ve webovém prohlížeči zobrazíte vyhledávací panel a seznam dostupných výsledků vyhledávání. Funkce vyhledávání zatím nefunguje, ale měli byste vidět uživatelské rozhraní, které bude používat:

Jak vytvořit rozevírací seznam s odpovídajícími výsledky na vyhledávacím panelu

Nyní, když máte vyhledávací panel a seznam řetězců pro vyhledávání, můžete přidat funkci vyhledávání. Když uživatel zadá do vyhledávacího pole, zobrazí se pouze určité položky v seznamu.

  1. v styly.css, nahraďte styl seznamu, aby se seznam ve výchozím nastavení skryl:
    #list {
    ohraničení: 1px plná světle šedá;
    border-radius: 5px;
    displej: žádný;
    }
  2. v script.js, vytvořte novou funkci s názvem search(). Mějte na paměti, že program zavolá tuto funkci pokaždé, když uživatel zadá nebo odebere znak z vyhledávacího panelu. Některé aplikace budou potřebovat cesty na server, aby mohly načíst informace. V takových případech by tato implementace mohla zpomalit vaše uživatelské rozhraní. Možná budete muset upravit implementaci, abyste to vzali v úvahu.
    funkceVyhledávání() {
    // zde je funkce vyhledávání
    }
  3. Uvnitř funkce search() získejte element div HTML pro seznam. Získejte také prvky značky kotvy HTML pro každou položku v seznamu:
    nechat seznamKontejner = dokument.getElementById('seznam');
    nechat seznam položek = dokument.getElementsByClassName('listItem');
  4. Získejte vstup, který uživatel zadal do vyhledávacího panelu:
    nechat vstup = dokument.getElementById('searchbar').value
    input = input.toLowerCase();
  5. Porovnejte vstup uživatele s každou položkou v seznamu. Pokud například uživatel zadá „a“, funkce porovná, zda je „a“ uvnitř „Austrálie“, pak „Rakousko“, „Brazílie“, „Kanada“ a tak dále. Pokud se shoduje, zobrazí tuto položku v seznamu. Pokud se neshoduje, skryje danou položku.
    nechat noResults = skutečný;
    pro (i = 0; i < listItems.length; i++) {
    if (!listItems[i].innerHTML.toLowerCase().includes (input) || input "") {
    listItems[i].style.display="žádný";
    pokračovat;
    }
    jiný {
    listItems[i].style.display="flex";
    noResults = Nepravdivé;
    }
    }
  6. Pokud v seznamu nejsou vůbec žádné výsledky, skryjte seznam úplně:
    listContainer.style.display = noResults? "žádný": "blok";
  7. Klikněte na index.html soubor otevřít ve webovém prohlížeči.
  8. Začněte psát do vyhledávacího panelu. Během psaní se seznam výsledků aktualizuje, aby zobrazoval pouze odpovídající výsledky.

Použití vyhledávacího pole k hledání odpovídajících výsledků

Nyní, když víte, jak vytvořit vyhledávací panel s výběrem řetězců, můžete přidat další funkce.

Můžete například přidat odkazy na své značky ukotvení a otevřít tak různé stránky v závislosti na výsledku, na který uživatel klikne. Vyhledávací panel můžete změnit tak, aby prohledával složitější objekty. Můžete také upravit kód tak, aby fungoval s frameworky, jako je React.

Přihlaste se k odběru našeho newsletteru

Komentáře

PodíltweetPodílPodílPodíl
kopírovat
E-mailem
Sdílejte tento článek
PodíltweetPodílPodílPodíl
kopírovat
E-mailem

Odkaz zkopírován do schránky

Související témata

  • Programování
  • Programování
  • Vývoj webu
  • JavaScript

O autorovi

Sharlene Khan(Publikováno 65 článků)

Shay pracuje na plný úvazek jako softwarový vývojář a rád píše příručky, které pomáhají ostatním. Má bakalářský titul v oboru IT a má předchozí zkušenosti se zajišťováním kvality a doučováním. Shay miluje hry a hru na klavír.