javascript - 如何在react.js 中获得每 5 秒更改一次的图像?

标签 javascript html css reactjs

import React, { useEffect, useState } from "react";

import aa from '../imgs/aa.png'
import aa2 from '../imgs/aa2.JPG'
import aa3 from '../imgs/aa3.JPG'
import aa4 from '../imgs/aa4.JPG'



import './AnimatedGalery.css'



export default function () {

    return (
        <div>
        </div>
    )
}

我不知道如何开始。我基本上想要一个图像(我可以调整大小并提供 css 属性),该图像每 5 秒更改为我这里的 4 个导入图像中的另一个。

最佳答案

想法:将所有导入的图像放在一个列表中。具有应显示的当前图像的状态变量。在 useEffect 中设置每 5 秒执行一次的间隔,使用随机选取的图像设置新状态。

const images = [aa, aa2, aa3, aa4];

export default function ImageSwapper() {
    const [currentImage, setCurrentImage] = useState(null);

    useEffect(() => {
        const intervalId = setInterval(() => {
            setCurrentImage(images[Math.floor(Math.random() * items.length)]);
        }, 5000)
        
        return () => clearInterval(intervalId);
    }, [])

    return (
        <div>
            <img src={currentImage} />
        </div>
    )
}

如果您想旋转图像,那么我只需保存 currentIndex 并显示其图像:

const images = [aa, aa2, aa3, aa4];

export default function ImageSwapper() {
    const [currentIndex, setCurrentIndex] = useState(0);

    useEffect(() => {
        const intervalId = setInterval(() => {
            if(currentIndex === images.length - 1) {
                setCurrentIndex(0);
            } 
            else {
                 setCurrentIndex(currentIndex + 1);
            }
        }, 5000)
        
        return () => clearInterval(intervalId);
    }, [])

    return (
        <div>
            <img src={images[currentIndex]} />
        </div>
    )
}

关于javascript - 如何在react.js 中获得每 5 秒更改一次的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67243653/

相关文章:

javascript - d3.js linechart 不同线的不同插值

JavaScript 代码未按预期在网页上运行

jquery - 如何删除 jQuery Mobile 导航图标的圆形容器?

html - 标题/标题

javascript - JS/RegEx 删除方括号内分组的字符

javascript - 如何重用 jqGrid 选项

javascript - 如果div为空,设置容器div为 "display:none"

html - 制作没有跨度的内联标题样式

html - CSS HTML 行出现在 div :active 上

javascript - 除 1 个部分外禁用滚动