在背景图像上创建淡入淡出 in/out 动画 change css in react

Create fade in/out animation on background images change css in react

我创建了一个图像列表,每 5 秒将显示为背景图像的图像更改为下一个。 当从一个图像更改为另一个图像时,我希望图像被替换为在 0.2 秒内淡出,而图像显示在 0.2 秒内淡出。

这是我在我的组件中所做的:

export default function Login() {
  const Images = [ ...someImagesLinks ]
  const [position, setPosition] = useState(0);
  useEffect(() => {
    const interval = setInterval(() => {
      if (position === 3) setPosition(0);
      else setPosition(position + 1);
    }, 5000);
    return () => clearInterval(interval);
  }, [position]);

  return (
    <div className="loginPageContainer">
      <div
        style={{url("${Images[position].img}")`}}
        className="bg_images_login"
      >
      </div>
    </div>
  );
}

这是我的 css :

.bg_images_login {
  width: 100vw;
  height: 100vh;
  margin: 0;
 }

图像每 5 秒更改一次,但没有动画。 我怎样才能用 CSS 解决这个问题?

将 CSS3 转换添加到您的 .bg_images_login class。

transition: background 0.2s linear;

如果您不介意添加更多依赖项,请查看以下内容: React Spring
这是直接 link 到 IMAGE FADE demo