Maison > interface Web > js tutoriel > Comment puis-je faire défiler automatiquement un div vers un élément spécifique sans faire défiler la page entière ?

Comment puis-je faire défiler automatiquement un div vers un élément spécifique sans faire défiler la page entière ?

DDD
Libérer: 2024-10-29 10:24:30
original
712 Les gens l'ont consulté

How can I automatically scroll a div to a specific element within it without scrolling the entire page?

Défilement vers un élément dans un Div

Vous avez pour objectif de programmer un div défilé pour qu'il défile automatiquement jusqu'à un élément qu'il contient en cliquant. L'utilisation de scrollIntoView(true) semble faire défiler toute la page, vous laissant perplexe.

Solution :

Pour résoudre ce problème, vous devez déterminer le décalage supérieur du élément cible par rapport à son parent, le conteneur div défilant. Ceci est réalisé grâce à :

<code class="js">var myElement = document.getElementById('element_within_div');
var topPos = myElement.offsetTop;</code>
Copier après la connexion

Le topPos contient désormais la distance en pixels entre le haut du div et l'élément que vous souhaitez voir.

Ensuite, demandez au div de faire défiler jusqu'à cet emplacement en utilisant scrollTop :

<code class="js">document.getElementById('scrolling_div').scrollTop = topPos;</code>
Copier après la connexion

Dans Prototype JS, cela se traduit par :

<code class="js">var posArray = $('element_within_div').positionedOffset();
$('scrolling_div').scrollTop = posArray[1];</code>
Copier après la connexion

Cette action fait défiler le div pour aligner l'élément spécifié en haut, ou aussi près que possible si le défilement ne fonctionne pas. Cela ne permet pas d'atteindre le sommet.

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
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal