React.jsを使用して構築しているWebアプリに取り組んでいます。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 のみを使用して実現する方法はありますか? React で JQuery を使用して回避策がある場合でも、提案をお願いします。
助けてくれてありがとう!