Heim  >  Artikel  >  Web-Frontend  >  So implementieren Sie Anker-Scrolling in React

So implementieren Sie Anker-Scrolling in React

王林
王林nach vorne
2020-12-23 10:56:433522Durchsuche

So implementieren Sie Anker-Scrolling in React

Tipps:

Um Anker-Scrolling zu implementieren, verwenden Sie nicht das Tag a, da dies zu Routing-Sprüngen führt.

(Teilen von Lernvideos: Video-Tutorial reagieren)

Hier verwenden wir die neue API von H5, scrollToAnchor

Die vorherige Methode zur Verwendung eines Tags:

<a href=&#39;#activity1&#39;></a>    //定义锚点
<div name=&#39;activity1&#39;></div>   //跳转到的锚点
但是在单页面中,这样会进行前端路由的修改

Verwenden Sie die scrollToAnchor-API, um

<a onClick={() => this.scrollToAnchor(name)}></a>    //定义锚点

<div id=&#39;activity1&#39;></div>   //跳转到的锚点
//函数定义
scrollToAnchor = (anchorName) => {
    if (anchorName) {
        // 找到锚点
        let anchorElement = document.getElementById(anchorName);
        // 如果对应id的锚点存在,就跳转到锚点
        if(anchorElement) { anchorElement.scrollIntoView({block: &#39;start&#39;, behavior: &#39;smooth&#39;}); }
    }
  }

Block zu ändern: bedeutet Scrollen zum Anker Die Ober- oder Unterseite des Punktes, Start/Ende

Verhalten: Zeigt den Scrolleffekt an, automatisch/sofort/glatt (Scrolleffekt)

1 Ändern Sie das traditionelle Namensattribut des Ankerpunkts in das ID-Attribut. Auf diese Weise können wir die Methode document.getElementById verwenden, um den Ankerpunkt bequem abzufragen.

2. Entfernen Sie das href-Attribut der ursprünglichen roten Schaltfläche und fügen Sie dann eine onClick-Methode hinzu. Die onClick-Methode übergibt die ID eines Ankerpunkts und verwendet dann die folgende Funktion, um den Ankerpunkt zu finden und zum Ankerpunkt zu springen.

Verwandte Empfehlungen: Reaktions-Tutorial

Das obige ist der detaillierte Inhalt vonSo implementieren Sie Anker-Scrolling in React. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen