Maison > interface Web > tutoriel CSS > le corps du texte

Comment limiter la plage de défilement d'un élément dans un élément parent de taille dynamique ?

Linda Hamilton
Libérer: 2024-11-17 21:52:01
original
218 Les gens l'ont consulté

How to Limit Scrolling Range of an Element Within a Dynamically-Sized Parent Element?

Implémentation de limites de hauteur CSS pour les éléments à défilement vertical

Dans une interface interactive, contrôler le comportement de défilement des éléments est essentiel pour garantir l'expérience utilisateur et accessibilité. Un de ces scénarios consiste à limiter la plage de défilement d'un élément au sein d'un élément parent de taille dynamique.

Problème :
Considérons une mise en page dans laquelle nous avons une carte défilante DIV qui se déplace avec le défilement vertical de l'utilisateur, tout en conservant son alignement avec une barre latérale fixe. Cependant, le défilement de la carte s'étend indéfiniment, dépassant la hauteur de la fenêtre d'affichage, empêchant les utilisateurs d'accéder au pied de page.

Solution :
Pour résoudre ce problème et limiter le défilement de la carte, nous pouvons exploiter les techniques CSS et JavaScript.

Tout d'abord, nous définissons une limite de hauteur CSS pour la carte DIV en utilisant le "max-height" propriété. Ceci définit une hauteur maximale que la carte peut atteindre, garantissant qu'elle ne peut pas dépasser la hauteur de l'élément parent.

</p>
<h1>map {</h1>
<p>max-height : 500px; <br>}<br>

Ensuite, nous utilisons JavaScript pour suivre la position de défilement de l'utilisateur et ajustez la position de la carte en conséquence. Au lieu d'utiliser la méthode ".animate()" de jQuery, nous optons pour une manipulation CSS directe pour des raisons de performances.

<br>$(window).scroll(function() {<br> var scrollVal = $(this).scrollTop();<br> if (scrollVal > $("#sidebar").offset().top) {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$("#map").css({
  marginTop: (scrollVal - $("#sidebar").offset().top) + "px"
});
Copier après la connexion

} else {

$("#map").css({
  marginTop: "0px"
});
Copier après la connexion

}
});

Dans ce code, on calcule le différence entre la position de défilement et le haut du décalage de la barre latérale, limitant efficacement la plage de défilement de la carte dans la barre latérale hauteur.

Approche alternative :

Dans certains scénarios, une approche alternative pourrait être préférée. Par exemple, si l'élément de carte a une hauteur fixe et que la barre latérale se développe dynamiquement, nous pouvons simplifier les calculs.

<br>$(window).scroll(function() {<br> var scrollVal = $(this).scrollTop();<br> if (scrollVal > $(".header").height()) {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$("#map").css({
  position: "fixed",
  top: "0px"
});
Copier après la connexion

} else {

$("#map").css({
  position: "static"
});
Copier après la connexion

}
});

Dans ce cas, nous utilisons le la hauteur de l'en-tête comme point de référence, en supposant qu'elle reste une hauteur fixe. Lorsque la position de défilement dépasse la hauteur de l'en-tête, nous fixons la position de la carte en haut de la fenêtre. Cette approche garantit que la carte défile au moment approprié, tout en restant dans la hauteur de la fenêtre.

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!

source:php.cn
Article précédent:Comment utiliser les icônes Font Awesome comme contenu CSS ? Article suivant:Continuez avec le développement Open Source
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
Derniers articles par auteur
Derniers numéros
Rubriques connexes
Plus>
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal