有没有什么办法在React JS的点击事件滚动上创建一个动画?没有 JQuery?滚动在React JS
我有一个导航,我想去一个页面部分取决于用户点击。我想用一些动画来做。
问题是导航和部分不在同一个文件中。
我在主要成分是这样的:
render() {
return (
<div>
<Header currentLanguage={this.props.language.labels}/>
{React.cloneElement(this.props.children, {
currentLanguage: this.props.language.labels
})}
<Footer currentLanguage={this.props.language.labels}/>
</div>
);
}
在这个道具的孩子,我想浏览的章节。它们是:
return (
<div className="homeMain">
<section ref="home" className="marginOnXs">
<MainSlider />
</section>
<section id="performance" ref="performance">
<Performance currentLanguage={languageHome}/>
</section>
<section id="benefits" ref="benefits">
<Benefits currentLanguage={languageHome} />
</section>
<section ref="contact" id="contact">
<ContactForm currentLanguage={languageHome}/>
</section>
</div>
);
里面头我有这样的事情:
<ul className="noPadding">
<li> <Link to="" onClick={this.handleScroll.bind(this, "home")}>Home </Link></li>
<li> <Link to="" onClick={this.handleScroll.bind(this, "contact")}>Contact?</Link></li>
</ul>
在手柄滚动我想是这样的:
handleScroll(id, event){
event.preventDefault();
let test = ReactDom.findDOMNode(this.refs[id]);
let scrollTop = event.target.body.scrollTop,
itemTranslate = Math.min(0, scrollTop/3 - 60);
window.scrollTo(0, itemTranslate);
}
但它不会工作。 this.refs[id]
返回未定义。如果点击标题中的联系人链接,则该函数中的参数标识为contact
,但找不到this.refs["contact"]
,因为它位于某个其他组件中。
有什么建议吗?
参考ED分量还是安装?或者它已经卸载并且您正在尝试引用它? – FurkanO