Maison interface Web tutoriel CSS Indiquant la position de défilement sur une page avec CSS

Indiquant la position de défilement sur une page avec CSS

Apr 08, 2025 am 10:14 AM

Indiquant la position de défilement sur une page avec CSS

Le défilement est quelque chose que nous connaissons et faisons tous sur le Web dans la mesure où c'est une attente ou peut-être même une habitude, comme se brosser les dents. C'est probablement pourquoi nous ne pensons pas trop à concevoir l'expérience de défilement - c'est une fonction de base bien connue. En fait, le dicton populaire «il n'y a pas de giron» vient de l'idée que les gens savent faire défiler et il n'y a pas de ligne arbitraire dont les gens ne subissent pas.

Les fonctionnalités basées sur Scroll ont tendance à impliquer une concoction sur mesure de CSS et JavaScript. C'est parce qu'il n'y a tout simplement pas autant de fonctionnalités natives disponibles pour le faire. Mais que se passe-t-il si nous pouvions accomplir quelque chose qui n'utilise que CSS?

Prenez cette ingénieuse barre de défilement horizontale avec CSS, par exemple. Je veux faire quelque chose de similaire, mais indiquer des sections de défilement plutôt que de capturer le défilement continu. En d'autres termes, plutôt que d'augmenter la longueur de l'indicateur pendant le parchemin, je ne veux augmenter que la longueur lorsqu'une certaine section de la page a été atteinte.

Comme ça:

Voici mon plan: chaque section porte un indicateur indétectable jusqu'à ce qu'il atteigne le haut de l'écran. C'est là qu'il devient visible en changeant de couleur et colle au sommet de la fenêtre.

L'opposé exact devrait se produire en sens inverse: l'indicateur suivra lorsque vous faites défiler l'écran, se camouflant à ne pas être détecté à l'œil nu.

Il y a deux pièces clés à cela. Le premier est que l'indicateur change de couleur lorsqu'il est près du haut de l'écran. Le second est que l'indicateur reste en haut de l'écran et ne descend que lorsque sa section est défilée vers le bas.

Le second est facile à faire: nous utilisons la position: collante; sur nos éléments. Lorsqu'une page est défilée, un élément collant colle à une position donnée sur l'écran dans son conteneur parent.

Cela nous amène à changer les couleurs. Étant donné que l'arrière-plan d'un document HTML est blanc par défaut, je garde le blanc comme couleur de base pour la démo. Cela signifie que l'indicateur doit avoir l'air blanc lorsqu'il est au-dessus de la couleur de base et se tourner vers une autre couleur lorsqu'il est au-dessus de la barre d'indicateur en haut de l'écran.

C'est là que les modes CSS Blend entrent en jeu. Ils nous donnent tellement d'options pour créer une variété d'amalgames de couleurs. Je vais aller avec la valeur de superposition. Celui-ci est de nature assez dynamique. Je n'expliquerai pas le mélange en profondeur (parce que les CSS-Tricks Alamanac font déjà un bon travail de cela) mais en tenant compte de cette démo, je dirai ceci: Lorsque la couleur de fond est blanche, la couleur de premier plan qui en résulte est blanche; Et lorsque l'arrière-plan est une autre couleur, la couleur résultante est plus foncée ou plus claire, selon la couleur avec laquelle il est mélangé.

L'indicateur s'arrête dans la démo est noir. Mais, à cause du mélange, nous les considérons comme blancs car ils sont sur fond blanc. Et quand ils sont au-dessus de l'élément de conteneur indicateur, qui est une belle nuance de violet, nous voyons un arrêt indicateur de violet sombre, car nous mélangeons le noir de l'indicateur avec le violet du conteneur de l'indicateur.

En commençant par le HTML:

 <div>
 <strong> sections défilé ↴ </strong>
 
 <div> </div>
</div>



<div class="passAgestops"> </div>



<div>
 
</div>



<div> </div>



<div>
 
</div>



<div> </div>



<div>
 
</div>
Copier après la connexion

Assez simple, non? Il y a un récipient collant tout en haut qui contient les indicateurs lorsqu'ils atteignent le sommet. À partir de là, nous avons trois sections de contenu, chacune surmontée d'un indicateur qui collera au sommet avec l'indicateur et se mélangera avec.

Voici le CSS:

 .PassAgEstops {
 Color en arrière-plan: noir; / * Chaque arrêt indicateur est noir * /
 MODE-MODE-MODED: superposition; / * Cela le fait paraître blanc sur un fond blanc * /
 Largeur: 33,3%; / * Trois sections au total, donc chaque section est un tiers * /
 En haut: calc (1EM 3PX);
}


#passage, 
.PassAgEstops {
 hauteur: 10px;
}


#passagewrapper,
.PassAgEstops {
 Position: collante; / * Le conteneur et les arrêts doivent rester au sommet * /
 Z-Index: 1; / * Assurez-vous que l'indicateur et les arrêts restent au premier plan * /
}


#passage {
 Contexte: Violet; / * Va se fondre avec du noir pour faire un indicateur violet plus foncé * /
 marge: 0 0 20px 0;
}


#passagewrapper {
 Color d'arrière-plan: blanc; / * Assurez-vous que nous travaillons avec White pour masquer les arrêts des indicateurs * /
 hauteur: 40px;
 En haut: 0px;
}


/ * Chaque arrêt déplacera un tiers de la largeur du conteneur indicateur pour couvrir le tout lorsque la dernière section est atteinte. * /
.PassAgestops: Nth-Child (4) {marge-gauche: 33,3%; }
.PassAgestops: Nth-Child (6) {marge-gauche: 66,6%; }


/ * Plus de style, bla bla. * /
Copier après la connexion

Les indicateurs (.Passagestops) sont noirs. Mais le mode de mélange de superposition les fait paraître blancs lorsqu'il se mélange avec l'arrière-plan blanc en dessous. Puisqu'il y a trois sections, chaque indicateur est d'un tiers de la largeur.

Les indicateurs ont la position: collant; avec une valeur de distance supérieure. Cela signifie que les indicateurs colleront une fois qu'ils atteindront la position calculée en haut de l'écran. Lorsque cela se produit, les indicateurs noirs qui sont apparus blancs se mélangent avec le conteneur d'indicateur Violet, ce qui les fait paraître un violet sombre, représentant la nouvelle position de défilement sur la page.

L'inverse est également vrai. Lorsqu'un indicateur perd sa position collante, il se déplacera de l'arrière-plan violet de la barre d'indicateur à l'arrière-plan blanc de la page, le cachant à nouveau… comme s'il n'était jamais là!

Voici à nouveau la démo:

C'est ça. Vous pouvez peut-être expérimenter davantage avec cela en ayant un fond non blanc avec un autre mode de mélange, ou un gradient pour la barre d'indicateur ou les arrêts.

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

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

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)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

Il est sorti! Félicitations à l'équipe Vue pour l'avoir fait, je sais que ce fut un effort massif et une longue période à venir. Tous les nouveaux documents aussi.

Un peu sur CI / CD Un peu sur CI / CD Apr 02, 2025 pm 06:21 PM

Je dirais que "Site Web" correspond mieux que "Application mobile" mais j'aime ce cadrage de Max Lynch:

Pouvez-vous obtenir des valeurs de propriété CSS valides du navigateur? Pouvez-vous obtenir des valeurs de propriété CSS valides du navigateur? Apr 02, 2025 pm 06:17 PM

J'ai eu quelqu'un qui écrivait avec cette question très légitime. Lea vient de bloguer sur la façon dont vous pouvez obtenir les propriétés CSS valides elles-mêmes du navigateur. C'est comme ça.

Utilisation de Markdown et de la localisation dans l'éditeur de blocs WordPress Utilisation de Markdown et de la localisation dans l'éditeur de blocs WordPress Apr 02, 2025 am 04:27 AM

Si nous devons afficher la documentation à l'utilisateur directement dans l'éditeur WordPress, quelle est la meilleure façon de le faire?

Cartes empilées avec un positionnement collant et une pincée de sass Cartes empilées avec un positionnement collant et une pincée de sass Apr 03, 2025 am 10:30 AM

L'autre jour, j'ai repéré ce morceau particulièrement charmant sur le site Web de Corey Ginnivan où une collection de cartes se cassent les uns sur les autres pendant que vous faites défiler.

Comparaison des navigateurs pour une conception réactive Comparaison des navigateurs pour une conception réactive Apr 02, 2025 pm 06:25 PM

Il existe un certain nombre de ces applications de bureau où l'objectif montre votre site à différentes dimensions en même temps. Vous pouvez donc, par exemple, écrire

Comment utiliser la grille CSS pour les en-têtes et pieds de page collants Comment utiliser la grille CSS pour les en-têtes et pieds de page collants Apr 02, 2025 pm 06:29 PM

CSS Grid est une collection de propriétés conçues pour faciliter la mise en page qu'elle ne l'a jamais été. Comme tout, il y a un peu une courbe d'apprentissage, mais Grid est

Fontes variables de polices Google Fontes variables de polices Google Apr 09, 2025 am 10:42 AM

Je vois que Google Fonts a déployé un nouveau design (tweet). Comparé à la dernière grande refonte, cela semble beaucoup plus itératif. Je peux à peine faire la différence

See all articles