[英]Limit animate.css animations at only one time
我正在使用animate.css
和react-on-screen
npm 包, react-on-screen
package 是使用TrackVisibility
組件,所以我可以制作一個很好的淡入效果。 但我只希望 animation 完成一次。 但是每次當我滾動回組件並且它重新出現在屏幕上時,animation 都會被重新獲取,這並不是一個很好的 UI。 我應該怎么辦?
您可以將TrackVisibility
組件的visible
屬性與useState
掛鈎結合使用,以跟蹤組件是否已設置動畫。 為組件設置動畫后,您可以使用animated
道具關閉 animation。
import { useState } from 'react';
import { TrackVisibility } from 'react-on-screen';
function MyComponent() {
const [animated, setAnimated] = useState(false);
return (
<TrackVisibility onVisible={() => setAnimated(true)}>
<div className={`my-component ${animated ? '' : 'animated fadeIn'}`}>
<!-- ... -->
</div>
</TrackVisibility>
);
}
在此示例中,第一次出現MyComponent
時, animated
變量 state 設置為 false,並應用 animation。 但是當MyComponent
滾出視圖然后又滾回視圖時, animated
變量 state 已經設置為 true,因此不再應用 animation。
還值得注意的是,如果你只想制作一次 animation,你可以使用TrackVisibility
組件的once
屬性:
<TrackVisibility once>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.