import { useEffect, useRef, useState } from "react"; export function AirbuddyAnim(){ const [isVisible, setVisible] = useState(false); const domRef = useRef(null)!; useEffect(() => { const observer = new IntersectionObserver(entries => { entries.forEach(entry => setVisible(entry.isIntersecting)); }); observer.observe(domRef.current!); }, []); const [isVisible2, setVisible2] = useState(false); const domRef2 = useRef(null)!; useEffect(() => { const observer = new IntersectionObserver(entries => { entries.forEach(entry => setVisible2(entry.isIntersecting)); }); observer.observe(domRef2.current!); }, []); const [isVisible3, setVisible3] = useState(false); const domRef3 = useRef(null)!; useEffect(() => { const observer = new IntersectionObserver(entries => { entries.forEach(entry => setVisible3(entry.isIntersecting)); }); observer.observe(domRef3.current!); }, []); const [isVisible4, setVisible4] = useState(false); const domRef4 = useRef(null)!; useEffect(() => { const observer = new IntersectionObserver(entries => { entries.forEach(entry => setVisible4(entry.isIntersecting)); }); observer.observe(domRef4.current!); }, []); const [isVisible5, setVisible5] = useState(false); const domRef5 = useRef(null)!; useEffect(() => { const observer = new IntersectionObserver(entries => { entries.forEach(entry => setVisible5(entry.isIntersecting)); }); observer.observe(domRef5.current!); }, []); const [isVisible6, setVisible6] = useState(false); const domRef6 = useRef(null)!; useEffect(() => { const observer = new IntersectionObserver(entries => { entries.forEach(entry => setVisible6(entry.isIntersecting)); }); observer.observe(domRef6.current!); }, []); const [isVisible7, setVisible7] = useState(false); const domRef7 = useRef(null)!; useEffect(() => { const observer = new IntersectionObserver(entries => { entries.forEach(entry => setVisible7(entry.isIntersecting)); }); observer.observe(domRef7.current!); }, []); const [isVisible8, setVisible8] = useState(false); const domRef8 = useRef(null)!; useEffect(() => { const observer = new IntersectionObserver(entries => { entries.forEach(entry => setVisible8(entry.isIntersecting)); }); observer.observe(domRef8.current!); }, []); return ( <> {/* One */} <div className='col' style={{ 'height': '100vh', 'transition': 'opacity 0.6s ease-out', 'opacity': `${isVisible ? '1' : '0'}`, 'visibility': `${isVisible ? 'visible' : 'hidden'}`}} ref={domRef}> <img style={{ 'position': 'fixed', 'top': '20vh', 'left': '20vw', 'width': '60vw', 'height': '60vh', }} src="https://static.igem.wiki/teams/5247/landing/airbuddy/airbuddy-0.webp"> </img> </div> {/* Two */} <div className='col' style={{ 'height': '100vh', 'transition': 'opacity 0.6s ease-out', 'opacity': `${isVisible2 ? '1' : '0'}`, 'visibility': `${isVisible2 ? 'visible' : 'hidden'}`}} ref={domRef2}> <img style={{ 'position': 'fixed', 'top': '20vh', 'left': '20vw', 'width': '60vw', 'height': '60vh', }} src="https://static.igem.wiki/teams/5247/landing/airbuddy/airbuddy-1.webp"> </img> </div> {/* Three */} <div className='col' style={{ 'height': '100vh', 'transition': 'opacity 0.6s ease-out', 'opacity': `${isVisible3 ? '1' : '0'}`, 'visibility': `${isVisible3 ? 'visible' : 'hidden'}`}} ref={domRef3}> <img style={{ 'position': 'fixed', 'top': '20vh', 'left': '20vw', 'width': '60vw', 'height': '60vh', }} src="https://static.igem.wiki/teams/5247/landing/airbuddy/airbuddy-2.webp"> </img> </div> {/* Four */} <div className='col' style={{ 'height': '100vh', 'transition': 'opacity 0.6s ease-out', 'opacity': `${isVisible4 ? '1' : '0'}`, 'visibility': `${isVisible4 ? 'visible' : 'hidden'}`}} ref={domRef4}> <img style={{ 'position': 'fixed', 'top': '20vh', 'left': '20vw', 'width': '60vw', 'height': '60vh', }} src="https://static.igem.wiki/teams/5247/landing/airbuddy/airbuddy-3.webp"> </img> </div> {/* Five */} <div className='col' style={{ 'height': '100vh', 'transition': 'opacity 0.6s ease-out', 'opacity': `${isVisible5 ? '1' : '0'}`, 'visibility': `${isVisible5 ? 'visible' : 'hidden'}`}} ref={domRef5}> <img style={{ 'position': 'fixed', 'top': '20vh', 'left': '20vw', 'width': '60vw', 'height': '60vh', }} src="https://static.igem.wiki/teams/5247/landing/airbuddy/airbuddy-4.webp"> </img> </div> {/* Six */} <div className='col' style={{ 'height': '100vh', 'transition': 'opacity 0.6s ease-out', 'opacity': `${isVisible6 ? '1' : '0'}`, 'visibility': `${isVisible6 ? 'visible' : 'hidden'}`}} ref={domRef6}> <img style={{ 'position': 'fixed', 'top': '20vh', 'left': '20vw', 'width': '60vw', 'height': '60vh', }} src="https://static.igem.wiki/teams/5247/landing/airbuddy/airbuddy-5.webp"> </img> </div> {/* Seven */} <div className='col' style={{ 'height': '100vh', 'transition': 'opacity 0.6s ease-out', 'opacity': `${isVisible7 ? '1' : '0'}`, 'visibility': `${isVisible7 ? 'visible' : 'hidden'}`}} ref={domRef7}> <img style={{ 'position': 'fixed', 'top': '20vh', 'left': '20vw', 'width': '60vw', 'height': '60vh', }} src="https://static.igem.wiki/teams/5247/landing/airbuddy/airbuddy-6.webp"> </img> </div> {/* Eight */} <div className='col' style={{ 'height': '100vh', 'transition': 'opacity 0.6s ease-out', 'opacity': `${isVisible8 ? '1' : '0'}`, 'visibility': `${isVisible8 ? 'visible' : 'hidden'}`}} ref={domRef8}> <img style={{ 'position': 'fixed', 'top': '20vh', 'left': '20vw', 'width': '60vw', 'height': '60vh', }} src="https://static.igem.wiki/teams/5247/landing/airbuddy/airbuddy-7.webp"> </img> </div> </> ); }