useSynchronizedAnimation
En react hook for å synkronisere CSS animasjoner på tvers av flere elementer.
React
Trykk Enter for å redigere
const Preview = () => { /* const SyncedBox = () => { const ref = useSynchronizedAnimation<HTMLDivElement>('spin'); return ( <div ref={ref} style={{ animation: 'spin 2s linear infinite', width: '30px', height: '30px', backgroundColor: 'red', }} /> ); }; */ const [count, setCount] = useState(1); return ( <div> <Button onClick={() => setCount(count + 1)} style={{ display: 'block' }}> Ny boks </Button> <div style={{ display: 'flex', gap: '10px', maxWidth: '300px', flexWrap: 'wrap', }} > {Array.from({ length: count }).map((_, i) => ( /* @ts-ignore */ <SyncedBox key={i} /> ))} </div> <style> {` @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } `} </style> </div> ); }; render(<Preview />)
Du sender inn navnet på animasjonen du vil synkronisere.
Hooken returnerer en ref, som du sender til elementet ditt.
Animasjonen på elementet ditt blir synkronsisert til den første animasjonen med samme navn på siden.