"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment limiter la plage de défilement d'un élément dans un élément parent de taille dynamique?

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

Publié le 2025-01-31
Parcourir:367

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 de défilement vertical

dans une interface interactive, le contrôle du comportement de défilement des éléments est essentiel pour assurer l'expérience des utilisateurs et accessibilité. Un tel scénario consiste à limiter la plage de défilement d'un élément au sein d'un élément parent de taille dynamique.

problème:
Considérez une disposition où nous avons un div de carte défile qui se déplace avec le parchemin vertical de l'utilisateur, tout en maintenant 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, empêchant les utilisateurs d'accéder au pied de page. Tirez parti des techniques CSS et JavaScript.

Premièrement, nous définissons une limite de hauteur CSS pour la division de la carte en utilisant la propriété "max-height". Cela 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.

$("#map").css({
  marginTop: (scrollVal - $("#sidebar").offset().top)   "px"
});
}

});

pre>
$("#map").css({
  marginTop: "0px"
});
Dans ce code, nous calculons la différence entre la position de défilement et le haut de décalage de la barre latérale, limitant efficacement le La plage de défilement de la carte dans la hauteur de la barre latérale.



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.

 
$ (window) .scroll (function () {

var scrollval = $ (this) .scrolltop ();

if (scrollval> $ (". En-tête"). hauteur ()) {

$ ("# map"). css ({{ Position: "Fix", en haut: "0px" });

} else {

$ ("# map"). css ({{ Position: "statique" });
$("#map").css({
  marginTop: "0px"
});
}

});

pre>
$("#map").css({
  marginTop: "0px"
});
Dans ce cas, nous utilisons la hauteur de l'en-tête comme point de référence, en supposant qu'il 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 en vue au moment approprié, tout en restant dans la hauteur de la fenêtre.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3