recherche
Maisoninterface Webtutoriel CSSRecherche filtrée en page avec Javascript Vanilla

Recherche filtrée en page avec Javascript Vanilla

Améliorez l'expérience utilisateur sur les pages riches en informations avec une fonction de recherche simple en page. Oubliez les requêtes de base de données ou l'analyse JSON - cette méthode recherche directement le contenu texte rendu d'une page Web. Bien qu'il existe une recherche intégrée de navigateur, cette approche offre une expérience de filtrage raffinée, mettant en évidence les résultats pertinents pour une navigation plus facile.

Voici une démo en direct présentant la fonctionnalité: [lien vers la démo]

J'utilise cette technique dans un projet du monde réel: https://www.php.cn/link/2a60eed05079970d61abad679da7ae8f .

Tirer parti de JavaScript

Ce tutoriel utilise JavaScript pour gérer tous les éléments interactifs. Plus précisément, ce sera:

  1. Identifier le contenu consultable.
  2. Survenez l'entrée de l'utilisateur dans le champ de recherche.
  3. Filtrez le innerText des éléments consultables.
  4. Vérifiez si le texte inclut le terme de recherche ( .includes() est essentiel ici).
  5. Basculer la visibilité de l'élément basé sur les correspondances de termes de recherche.

Structure HTML de base

Supposons une page FAQ où chaque question est présentée comme une "carte" avec un titre et un contenu:

<h1 id="Section-FAQ"> Section FAQ</h1>

<div>
  <h3 id="Qui-sommes-nous">Qui sommes-nous</h3>
  <p>Il a survécu non seulement à cinq siècles, mais aussi au saut dans la composition électronique, restant essentiellement inchangé. Il a été popularisé</p>
</div>

<div>
  <h3 id="Ce-que-nous-faisons">Ce que nous faisons</h3>
  <p>Il a survécu non seulement à cinq siècles, mais aussi au saut dans la composition électronique, restant essentiellement inchangé. Il a été popularisé</p>
</div>

<div>
  <h3 id="Pourquoi-travailler-ici">Pourquoi travailler ici</h3>
  <p>Il a survécu non seulement à cinq siècles, mais aussi au saut dans la composition électronique, restant essentiellement inchangé. Il a été popularisé</p>
</div>

<div>
  <h3 id="Apprendre-encore-plus">Apprendre encore plus</h3>
  <p>Vous voulez en savoir plus sur nous?</p>
</div>

Pour une page avec de nombreuses questions, cette structure évolue efficacement.

Pour permettre l'interactivité, nous utiliserons une seule règle CSS:

 .is-hidden {affichage: aucun; }

Cette classe sera ajoutée ou supprimée dynamiquement pour contrôler la visibilité des éléments. Nous ajouterons également une entrée de recherche:

 <label for="searchbox">Recherche:</label>
<input type="text" id="searchbox">

Fonctionnalité de base JavaScript

Le code JavaScript suivant gère la fonctionnalité de recherche:

 fonction lifesearch () {
  Laissez les cartes = document.QuerySelectorAll ('. Cards'); // sélectionner les éléments de la carte
  Laissez SearchQuery = document.getElementById ("SearchBox"). Valeur; // Obtenez le terme de recherche

  cartes.ForEach (card => {
    Soit textContent = card.innerText.tolowerCase (); // normaliser en minuscules
    Laissez SearchTermLower = SearchQuery.tolowerCase (); // normaliser en minuscules

    if (textContent. y compris (SearchterLlower)) {
      card.classlist.remove ('is-hidden'); // Afficher les cartes de correspondance
    } autre {
      card.classList.add ('is-hidden'); // masquer les cartes non correspondantes
    }
  });
}

// ajoute un petit retard pour éviter les appels de fonction excessifs
Laissez Typingtimer;
Soit typeInterval = 500; // une demi-seconde
Laissez SearchInput = document.getElementById ('SearchBox');

searchInput.adDeventListener ('keyup', () => {
  ClearTimeout (typingtimer);
  TypingTimer = setTimeout (lifesearch, typeInterval);
});

Le code itère via les cartes, vérifie l'inclusion des termes de recherche (insensible au cas) et met à jour la visibilité en conséquence. Un retard empêche les problèmes de performance des frappes rapides.

Expansion des capacités de recherche: correspondance floue

Pour intégrer la correspondance floue (recherche de mots clés connexes, même s'il n'est pas affiché explicitement), envisagez d'utiliser des éléments ou des attributs cachés:

Méthode 1: Éléments cachés

Ajouter des éléments cachés contenant des mots clés:

<div>
  <h3 id="Qui-sommes-nous">Qui sommes-nous</h3>
  <p>...</p>
  <span class="hidden-keywords">secret, compagnie, histoire</span>
</div>

Modifiez liveSearch pour inclure textContent au lieu de innerText pour accéder aux mots clés cachés.

Méthode 2: Attributs

Utilisez des attributs comme alt pour les images:

<img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174227042512545.jpg?x-oss-process=image/resize,p_40" class="lazy" alt="Recherche filtrée en page avec Javascript Vanilla">

Ajustez liveSearch pour utiliser getAttribute('alt') pour rechercher des valeurs d'attribut.

Note importante

Cette méthode de recherche est limitée au contenu déjà rendu dans le DOM. Il ne convient pas à la recherche de bases de données externes ou de grands ensembles de données.

Conclusion

Cette solution de recherche en page simple mais efficace, implémentée avec Vanilla JavaScript, peut considérablement améliorer la convivialité des pages Web avec un contenu étendu. Adapter et développer cette technique en fonction de diverses applications, des pages FAQ aux galeries d'images.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Style CSS de niveau supérieur pour les curseursStyle CSS de niveau supérieur pour les curseursApr 23, 2025 am 11:04 AM

Les curseurs personnalisés avec CSS sont excellents, mais nous pouvons faire passer les choses au niveau supérieur avec JavaScript. À l'aide de JavaScript, nous pouvons passer entre les états du curseur, placer du texte dynamique dans le curseur, appliquer des animations complexes et appliquer des filtres.

Worlds Collide: Détection de collision de l'ordre clé à l'aide de requêtes de styleWorlds Collide: Détection de collision de l'ordre clé à l'aide de requêtes de styleApr 23, 2025 am 10:42 AM

Les animations CSS interactives avec des éléments se ricochent semblent plus plausibles en 2025. Bien qu'il soit inutile de mettre en œuvre Pong dans CSS, la flexibilité et la puissance croissantes de CSS renforcent le soupçon de Lee selon lequel un jour, ce sera un jour

Utilisation du filtre de fond CSS pour les effets d'interface utilisateurUtilisation du filtre de fond CSS pour les effets d'interface utilisateurApr 23, 2025 am 10:20 AM

Conseils et astuces sur l'utilisation de la propriété CSS Back-Filter pour styliser les interfaces utilisateur. Vous apprendrez à superposer des filtres en toile de fond entre plusieurs éléments et à les intégrer à d'autres effets graphiques CSS pour créer des conceptions élaborées.

Smil sur?Smil sur?Apr 23, 2025 am 09:57 AM

Eh bien, il s'avère que les fonctionnalités d'animation intégrées de SVG n'ont jamais été obsolètes comme prévu. Bien sûr, CSS et JavaScript sont plus que capables de porter la charge, mais il est bon de savoir que Smil n'est pas mort dans l'eau comme précédemment

'Pretty' est dans l'œil du spectateur'Pretty' est dans l'œil du spectateurApr 23, 2025 am 09:40 AM

Yay, laissez-le saut pour le wat-wrap: joli atterrissage dans la technologie safari aperçu! Mais méfiez-vous qu'il est différent de la façon dont il fonctionne dans les navigateurs de chrome.

CSS-Tricks raconte xliiiCSS-Tricks raconte xliiiApr 23, 2025 am 09:35 AM

Cette mise à jour de CSS-Tricks met en évidence des progrès significatifs dans l'Almanac, des apparitions de podcast récentes, un nouveau guide CSS Counter et l'ajout de plusieurs nouveaux auteurs contribuant un contenu précieux.

La fonctionnalité @Apply de Tailwind est meilleure qu'il n'y paraîtLa fonctionnalité @Apply de Tailwind est meilleure qu'il n'y paraîtApr 23, 2025 am 09:23 AM

La plupart du temps, les gens présentent la fonctionnalité de Tailwind avec l'un des utilitaires à propriété unique de Tailwind (qui modifie une seule déclaration CSS). Lorsqu'il est présenté de cette façon, @Apply ne semble pas du tout prometteur. So évidence

Se sentir comme je n'ai pas de libération: un voyage vers les déploiements sainsSe sentir comme je n'ai pas de libération: un voyage vers les déploiements sainsApr 23, 2025 am 09:19 AM

Le déploiement comme un idiot se résume à un décalage entre les outils que vous utilisez pour déployer et la récompense en complexité réduite par rapport à la complexité ajoutée.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.