【发布时间】:2017-07-05 23:09:27
【问题描述】:
以下代码滚动到顶部并接受延迟:
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});
}
});
如何使用主导航实现类似的功能?有没有办法计算元素的偏移量?然后我可以通过 this 而不是传递 top。
【问题讨论】:
-
使用主导航是什么意思?
-
@juancab 我的应用中有一个主导航,我想在点击时滚动到相应的部分(例如主页、关于、联系人等)。我已经使用 scrollIntoView 进行了这项工作,但它的流畅行为仅在 Firefox 中有效,因此它会跳转而不是滚动。