2017-02-16 105 views
0

下面這段代碼滾動到頂部的Y位置,也接受延遲:陣營scrollTo /獲取元素/組件

const ScrollToTop = React.createClass({ 
    getInitialState: function() { 
    return {intervalId: 0}; 
    }, 

    scrollStep: function() { 
    const top = 0; 

    if (window.pageYOffset === top) { 
     clearInterval(this.state.intervalId); 
    } 
    window.scroll(top, window.pageYOffset - this.props.scrollStepInPx); 
    }, 

    scrollToTop: function (event) { 
    event.preventDefault(); 

    const intervalId = setInterval(this.scrollStep, this.props.delayInMs); 

    this.setState({intervalId: intervalId}); 
    } 
}); 

我怎樣才能實現類似的東西,但用我的主導航?有沒有計算元素偏移量的方法?然後我可以代替頂部通過這個

+0

你是什麼意思使用您的主要導航? – juancab

+0

@juancab我在我的應用程序中有一個主導航,我想滾動到相應的點擊部分(例如,主頁,關於,聯繫人等)。我已經與** scrollIntoView **一起工作,但其流暢的行爲僅適用於** Firefox **,因此它跳轉而不是滾動。 – Manu

回答

1

使用庫來實現。請參閱react-scroll。這是基本滾動和平滑滾動的指令。

Live example可用。如果這對你有用,read the usage guidelines

+0

我已經檢查過(以及其他圖書館)。我在跳躍尋找一種不需要圖書館的方法。我會考慮的,謝謝! – Manu

+0

我會使用第三方庫來解決這個問題。這不是主流的做法,而像反應卷軸這樣的小工具可以讓你頭痛。 PS:如果這解決了您的問題,我想通過點擊綠色的複選標記,請您[接受我的回答](https://meta.stackexchange.com/a/5235/343165)。這向更廣泛的社區表明,您已找到解決方案,爲您和我提供了一定的聲譽,並且可以通過發現您的問題來幫助人們解決類似的問題。 –