css - 如何在更新内容时添加淡入淡出
问题描述
我正在尝试创建一个带有反应的滑块。我有一系列幻灯片。我useState
用来存储活动幻灯片,然后每 3 秒用useEffect
.
const [activeSlide, setActiveSlide] = useState(slides[2]);
useEffect(() => {
setTimeout(() => {
setActiveSlide((prevState) => slides[prevState.next]);
}, 5000);
}, [activeSlide]);
在 jsx 中使用活动幻灯片,如下所示:
<h4 className='font-medium text-gray-600 dark:text-gray-200'>{activeSlide.desc}</h4>
我不确定如何在幻灯片更新时添加淡入淡出效果。有什么建议么 ?
解决方案
如果您正在提高自己的CSS
技能,请不要考虑我的建议。否则,您可以使用Crousel
from react-slick
。
有一个例子,代码取自material-kit-react
:
- 导入
react-slick
:
import Carousel from "react-slick";
settings
用autoplay:true
和定义fade:true
:
const settings = {
dots: true,
infinite: true,
speed: 500,
slidesToShow: 1,
slidesToScroll: 1,
autoplay: true,
fade: true
};
- 中的
return
函数material-kit-react
:
return (
<div className={classes.section}>
<div className={classes.container}>
<GridContainer>
<GridItem xs={12} sm={12} md={8} className={classes.marginAuto}>
<Card carousel>
<Carousel {...settings}>
<div>
<img src={image1} alt="First slide" className="slick-image" />
<div className="slick-caption">
<h4>
<LocationOn className="slick-icons" />
Yellowstone National Park, United States
</h4>
</div>
</div>
<div>
<img
src={image2}
alt="Second slide"
className="slick-image"
/>
<div className="slick-caption">
<h4>
<LocationOn className="slick-icons" />
Somewhere Beyond, United States
</h4>
</div>
</div>
<div>
<img src={image3} alt="Third slide" className="slick-image" />
<div className="slick-caption">
<h4>
<LocationOn className="slick-icons" />
Yellowstone National Park, United States
</h4>
</div>
</div>
</Carousel>
</Card>
</GridItem>
</GridContainer>
</div>
</div>
);
只需更改它并准备就绪。我希望这对您有所帮助并节省您的时间。
推荐阅读
- javascript - 未捕获的 ReferenceError:未定义 getLocation
- python - uwsgi和bottle中存在文件,但是出现404错误
- python - 将字符串数据转换为数值数据
- git - 在 Cygwin 中通过 SSH 进行 Git 克隆不提示输入密码,而是输出错误
- ruby-on-rails - 如何为 Rails 5.2 转换 Rails 动态路由
- go - 当端口在.json文件中硬编码时如何使用动态端口?
- php - laravel 自动硬删除
- python - 如何将输入 X 和 y_pred 传递给 keras 中的自定义损失函数?
- javascript - 跟踪不同来源的 iframe 上的焦点事件?
- java - 需要帮助搜索三个文件并打印出相同的公共行