diff --git a/src/forge/Main/projecthome/v2/components/banner.jsx b/src/forge/Main/projecthome/v2/components/banner.jsx index 5ee47f12a..a3dd59720 100644 --- a/src/forge/Main/projecthome/v2/components/banner.jsx +++ b/src/forge/Main/projecthome/v2/components/banner.jsx @@ -9,6 +9,7 @@ import './index.scss'; function Banner({isVisible}) { const [active, setActive] = useState(0); const [active1, setActive1] = useState(0); + const [intervalId, setIntervalId] = useState(null); const lines1 = [ 'if(!isVisible)', @@ -77,6 +78,7 @@ function Banner({isVisible}) { }); }, 400); }, 3000); + setIntervalId(interval); // 清理定时器 return () => { @@ -84,6 +86,29 @@ function Banner({isVisible}) { }; }, []); + const pauseInterval = () => { + if (intervalId) { + clearInterval(intervalId); + setIntervalId(null); + } + }; + + const resumeInterval = () => { + if (!intervalId) { + const interval = setInterval(() => { + setActive(prevActive => { + return prevActive < 3 ? prevActive+1 : 0; + }); + setTimeout(() => { + setActive1(prevActive => { + return prevActive < 3 ? prevActive+1 : 0; + }); + }, 400); + }, 3000); + setIntervalId(interval); + } + }; + return (