Table des matières
1. Utilisez CSS avec JavaScript pour la détection de défilement
Structure HTML de base
CSS: Définissez l'animation de révélation
JavaScript: ajouter une classe sur Scroll
2. Facultatif: utilisez les propriétés personnalisées CSS pour la réutilisabilité
3. Conseils de performance
4. Alternative: Utiliser l'observateur d'intersection (recommandé)
Maison interface Web tutoriel CSS Comment créer une révélation de texte sur l'effet de défilement avec CSS

Comment créer une révélation de texte sur l'effet de défilement avec CSS

Aug 25, 2025 am 06:06 AM
css Effet de défilement

Bien que le CSS pur ne puisse pas réaliser directement les effets d'affichage de texte déclenché par défilement, il peut être implémenté efficacement en combinant une petite quantité d'animations de transition JavaScript et CSS; La méthode spécifique consiste à utiliser JavaScript pour détecter si les éléments entrent dans la fenêtre et ajouter la classe "révélée". CSS est responsable de la définition des effets de transition de la transparence et du déplacement. Il est recommandé d'utiliser l'API d'observateur d'intersection pour améliorer les performances et finalement d'obtenir un effet d'affichage de texte de défilement lisse et élégant.

Comment créer une révélation de texte sur l'effet de défilement avec CSS

La création d'une révélation de texte sur l'effet de défilement avec CSS est un moyen propre et performant d'ajouter une interaction subtile à vos pages Web. Bien que Pure CSS ait des limites en ce qui concerne les animations basées sur le défilement (puisque CSS seul ne peut pas détecter directement la position de défilement), vous pouvez réaliser un effet de révélation de texte convaincant en utilisant CSS combiné avec un JavaScript minimal pour la détection de défilement. Voici comment le faire efficacement.

1. Utilisez CSS avec JavaScript pour la détection de défilement

Un véritable effet "On Scroll" nécessite JavaScript pour surveiller la position de défilement de l'utilisateur et déclencher un changement de classe lorsque l'élément apparaît. Cependant, l'animation et le style réels sont gérés par CSS.

Structure HTML de base

 <div class = "révéler-container">
  <p class = "text-to-reveal"> Ce texte sera révélé lorsque vous faites défiler. </p>
</div>

CSS: Définissez l'animation de révélation

 .Text-to-reveal {
  Opacité: 0;
  Transform: Translatey (20px);
  Transition: opacité de 0,8 s facturant, transformez 0,8 s facilité de sortie;
}

.text-to-reveal.revealed {
  Opacité: 1;
  Transform: Translatey (0);
}

Cela définit le texte pour être invisible et légèrement décalé initialement. Lorsque la classe revealed est ajoutée, elle s'estompe et se remonte en douceur.

JavaScript: ajouter une classe sur Scroll

 const Textelements = document.QuerySelectorAll (&#39;. Text-to-reveal&#39;);

const RevealOnScroll = () => {
  textelements.ForEach (el => {
    const elementTop = el.getBoundingClientRect (). Top;
    const windowheight = window.innerHeight;

    // Si l&#39;élément est dans la fenêtre
    if (elementTop <windowheight * 0.8) {
      el.classlist.add («révélé»);
    }
  });
};

// Exécutez sur le chargement et faites défiler
Window.AddeventListener (&#39;Load&#39;, RevealOnScroll);
Window.AddeventListener (&#39;Scroll&#39;, RevealOnScroll);

Ce script vérifie si chaque élément .text-to-reveal se situe à 80% de la hauteur de la fenêtre. Vous pouvez ajuster 0.8 pour contrôler lorsque la révélation se produit (par exemple, 0.7 pour plus tôt, 1 pour une fois entièrement visible).

2. Facultatif: utilisez les propriétés personnalisées CSS pour la réutilisabilité

Vous pouvez rendre l'effet plus flexible en utilisant des variables CSS:

 .Reveal-container {
  - réévaluation: 0,2 s;
}

.Text-to-reveal {
  Opacité: 0;
  Transform: Translatey (20px);
  Transition: opacité de 0,8 s facturant, transformez 0,8 s facilité de sortie;
  TRANSITION-DELAY: var (- révéler-delay, 0s);
}

.text-to-reveal.revealed {
  Opacité: 1;
  Transform: Translatey (0);
  TRANSITION-DELAY: var (- révéler-delay, 0s);
}

Vous pouvez maintenant contrôler le timing par élément:

 <div class = "révéler-contrainer" style = "- révéler-delay: 0.3s;">
  <p class = "text-to-reveal"> révèle légèrement plus tard </p>
</div>

3. Conseils de performance

  • Agrandir l'événement de défilement pour éviter les problèmes de performances:

     Soit Isscrolling = false;
    window.addeventListener (&#39;scroll&#39;, () => {
      if (! isscrolling) {
        window.requestanimationframe (() => {
          RevealOnScroll ();
          isscrolling = false;
        });
        isscrolling = true;
      }
    });
  • Utilisez transform et opacity pour les animations - elles sont accélérées par GPU et fonctionnent mieux que l'animation margin ou top .

  • Évitez d'attacher les auditeurs à trop d'éléments; Envisagez d'utiliser un modèle d'observateur unique pour plusieurs éléments de révélation.

4. Alternative: Utiliser l'observateur d'intersection (recommandé)

Pour de meilleures performances et un code plus propre, utilisez l'API IntersectionObserver :

 const Observer = new intersectionObserver ((entrées) => {
  entrées.ForEach (entrée => {
    if (entry.isINTERSECTING) {
      entry.target.classList.add («révélé»);
      // Facultatif: arrêtez d&#39;observer après révéler
      Observer.unObServe (entrée.target);
    }
  });
}, {Threshold: 0.1}); // déclenche quand 10% de l&#39;élément est visible

document.QuerySelectorall (&#39;. Text-to-reveal&#39;). ForEach (el => {
  Observer.Observe (El);
});

Ceci est plus efficace que d'écouter chaque événement de défilement et est la norme moderne pour les révélations basées sur Scroll.


Fondamentalement, bien que vous ne puissiez pas faire une véritable révélation déclenchée par défilement avec uniquement CSS, combiner un JavaScript minimal avec des transitions CSS lisses vous donne un effet de révélation de texte puissant et performant. Utilisez IntersectionObserver pour les meilleurs résultats et gardez les animations subtiles pour un look professionnel.

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 de ce site Web
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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

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.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment coiffer une TextArea avec CSS Comment coiffer une TextArea avec CSS Sep 16, 2025 am 07:00 AM

Tout d'abord, définissez des styles de base tels que la largeur, la hauteur, les marges, les bordures, les polices et les couleurs; 2. Améliorer la rétroaction interactive à travers: Hover et: Focus States; 3. Utilisez l'attribut de redimensionnement pour contrôler le comportement de redimensionnement; 4. Utilisez le pseudo-élément :: :: Placeholder pour styliser le texte de l'espace réservé; 5. Utiliser la conception réactive pour assurer la disponibilité des appareils croisés; 6. Faites attention aux étiquettes de corrélation, au contraste des couleurs et aux découvertes de mise au point pour assurer l'accessibilité, et finalement obtenir un style de textare beau et fonctionnel.

Comment créer un menu déroulant avec CSS pur Comment créer un menu déroulant avec CSS pur Sep 20, 2025 am 02:19 AM

Utilisez HTML et CSS pour créer des menus déroulants sans JavaScript. 2. Déclenchez l'affichage sous-menu via: Hover Pseudo-Class. 3. Utilisez des listes imbriquées pour construire une structure et définissez les effets d'affichage cachés et suspendus dans CSS. 4. L'animation de transition peut être ajoutée pour améliorer l'expérience visuelle.

Comment empêcher les images de s'étirer ou de rétrécir avec CSS Comment empêcher les images de s'étirer ou de rétrécir avec CSS Sep 21, 2025 am 12:04 AM

UseObject-FitorMax-widthWithHeight: Autotopreventimagedistortion; Object-FitControlshowImagesFillContainers whilepreservingaspeclectratios, andmax-width: 100%; hauteur: autoensirsesworSeSivesCalings withoutstreching.

Comment utiliser la propriété Pointer-Events dans CSS Comment utiliser la propriété Pointer-Events dans CSS Sep 17, 2025 am 07:30 AM

Thepointer-EventsPropertyInSssControlswheTheRelementCanBetHetRetGofPoInterEvents.1.USEPOINTER-EVENTS: nontodisable InteractionsLikEclicksorhovers WransHelementElement Visincally Visible.2.ApplyitoOverlayStoallowClick-ThroughViOronngeLible.20

Comment ajouter un effet d'ombre avec CSS Comment ajouter un effet d'ombre avec CSS Sep 20, 2025 am 12:23 AM

Usethebox-shadowpropertytoadddropshadows.definehorizontalandverticaloffsets, flou, propagation, couleur, andoptionalinsetForrinnershadows.multipleshadowsarecomma-separisé.example: box-shadow: 5px10px8pxrgba (0,0,0,0.3); créationasoftblack.

Comment ajouter un fond dégradé dans CSS Comment ajouter un fond dégradé dans CSS Sep 16, 2025 am 05:30 AM

Pour ajouter un fond de gradient CSS, utilisez les attributs d'arrière-plan ou d'arrière-plan pour coopérer avec des fonctions telles que linéaire-gradient (), radial-gradient (); Sélectionnez d'abord le type de dégradé, définissez la direction et la couleur, et vous pouvez le contrôler finement via des points d'accostage des couleurs, de la forme, de la taille et d'autres paramètres, tels que le gradient linéaire (Torigh

Comment rendre le texte réactif avec CSS Comment rendre le texte réactif avec CSS Sep 15, 2025 am 05:48 AM

TomakeTextResponsiveInSs, UserelativeUnitsLikerem, VW, etclamp () Withmediaqueries.1.replaceFixedPixelSwithremForConsistentsCali ngbasedonrootfontsize.2.UsevwforfluidsCalingbutcombinewithcalc () orclamp () topreventExtremes.3.ApplymediaqueriesAtCommonBreakpo

Comment créer une image circulaire dans CSS? Comment créer une image circulaire dans CSS? Sep 15, 2025 am 05:33 AM

Utilisez Border-Radius: 50% pour transformer les images de largeur et de hauteur égales en cercles, combinez l'adaptation d'objets et le rapport d'aspect pour assurer la forme et la culture, et ajouter des frontières, des ombres et d'autres styles pour améliorer les effets visuels.

See all articles