Maison > interface Web > js tutoriel > Comment faire défiler jusqu'à un élément dans React ?

Comment faire défiler jusqu'à un élément dans React ?

Linda Hamilton
Libérer: 2024-11-14 09:37:02
original
869 Les gens l'ont consulté

How to Scroll to an Element in React?

Comment faire défiler jusqu'à un élément ?

Vous souhaitez que votre widget de chat se concentre automatiquement sur le dernier message lorsque de nouveaux messages sont chargés. Pour y parvenir, vous devez créer une référence dynamique pour chaque message et utiliser une fonction de défilement pour faire défiler jusqu'au dernier élément.

Voici comment procéder :

React 16.8 , Composant fonctionnel

const ScrollDemo = () => {
  const myRef = useRef(null);

  const executeScroll = () => myRef.current.scrollIntoView(); // run this function from an event handler or an effect to execute scroll

  return (
    <>
      <div ref={myRef}>Element to scroll to</div>
      <button onClick={executeScroll}>Click to scroll</button>
    </>
  );
};
Copier après la connexion

React 16.3 , Composant de classe

class ReadyToScroll extends Component {
  constructor(props) {
    super(props);
    this.myRef = React.createRef();
  }

  render() {
    return <div ref={this.myRef}>Element to scroll to</div>;
  }

  executeScroll = () => this.myRef.current.scrollIntoView(); // run this method to execute scrolling.
}
Copier après la connexion

Composant de classe - Réf callback

class ReadyToScroll extends Component {
  render() {
    return (
      <div ref={(ref) => (this.myRef = ref)}>Element to scroll to</div>
    );
  }

  executeScroll = () => this.myRef.scrollIntoView(); // run this method to execute scrolling.
}
Copier après la connexion

Remarques :

  • Évitez d'utiliser des références de chaîne car elles sont obsolètes.
  • Passez la référence à l'élément DOM, pas au composant React.
  • Ajoutez du CSS pour activer une animation de défilement fluide.

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