我正在开发一个使用 React.js 构建的网络应用程序。我想在 div 进入视口时触发动画。目前,我可以运行动画,但动画不会等待 div 进入视口。
假设用户在安装组件之前访问该站点并切换到另一个选项卡。因此,在用户切换回此选项卡之前,假设组件已安装,但动画应该仅在用户切换回此选项卡时开始。
我已经使用react -transition-group包中的CSSTransitionGroup实现了动画。我试图弄清楚如何在 div 进入视口时触发动画。
RequestFormComponent.js
const RequestForm = (props) => {
const handlesubmit = ()=> {
///
}
return (
<>
<Jumbotron style={{ backgroundImage: './images/jumbo.jpg'}}>
<div className="container">
<div className="row">
<CSSTransitionGroup
transitionName="request-form"
transitionAppear={true}
transitionAppearTimeout={1000}
transitionEnter={false}
transitionLeave={false}
transitionEnterTimeout={1000}
transitionLeaveTimeot={300}
>
<div className="request_form">
<h4>Create a request</h4>
<Form id="create-request" model="request" onSubmit={(values) => handleSubmit(values)}>
///
</Form>
</div>
</CSSTransitionGroup>
</div>
</div>
</Jumbotron>
</>
)
}
export default RequestForm;
CSS
.request-form-appear.request-form-appear-active {
animation-duration: 1s;
animation-timing-function: linear;
animation-iteration-count: 1;
animation-name: slideInFromRight;
}
我知道这可以通过使用 JQuery 来实现,但是有没有办法只使用 React.js 来实现它?即使使用 JQuery 和 React 可以解决此问题,也请提出您的建议。
谢谢您的帮助!