【发布时间】:2023-03-18 18:15:01
【问题描述】:
另一位开发人员使用 React.js 编写了这段代码来切换名为 ArticleNav 的导航元素的外观。它会在您向下滚动时显示出来,但在您向上滚动时会隐藏起来。
onScroll: function () {
var mainColumn = document.getElementsByClassName('main-column')[0];
var firstTextElement = mainColumn.querySelector('.dek');
if (!firstTextElement) {
firstTextElement = mainColumn.querySelector('.body-text');
}
if (window.scrollY >= firstTextElement.offsetTop) {
if (!this.state.hideForArticleNav) {
this.setState({hideForArticleNav: true});
}
} else {
if (this.state.hideForArticleNav) {
this.setState({hideForArticleNav: false});
}
}
}
这很好用,但是if (window.scrollY >= firstTextElement.offsetTop) 的使用使这个来回跳跃太快了,我想创建一个,比如说......,50px 的阈值来确认用户实际上是在向相反的方向滚动。
你们对如何解决这个问题有什么建议吗?我比 React 更注重 jQuery,所以我所有的正常修复在这里都不能完全翻译。
【问题讨论】:
标签: javascript css reactjs