答案:通过CSS Animation和transform: scale()实现图片缩放轮播。首先构建包含多张图片的容器,设置绝对定位与隐藏溢出;利用@keyframes定义从放大1.2倍淡入至正常尺寸再淡出的动画;为每个图片项设置不同延迟的无限循环动画;可选添加:hover暂停效果,实现纯CSS、流畅且兼容的轮播展示。

使用 CSS Animation 制作图片缩放轮播,核心是结合 @keyframes 定义动画效果,并通过 transform: scale() 控制图片的缩放变化。下面是一个简洁实用的实现方式。
准备一个容器和若干图片项,每张图用一个 div 包裹:
<div class="carousel"> <div class="carousel-item"><img src="image1.jpg" alt="Image 1"></div> <div class="carousel-item"><img src="image2.jpg" alt="Image 2"></div> <div class="carousel-item"><img src="image3.jpg" alt="Image 3"></div> </div>
让轮播容器居中显示,隐藏溢出内容,所有图片默认隐藏,只显示当前激活项:
.carousel {
width: 400px;
height: 300px;
margin: 50px auto;
position: relative;
overflow: hidden;
border-radius: 10px;
}
.carousel-item {
position: absolute;
width: 100%;
height: 100%;
opacity: 0;
top: 0;
left: 0;
}
.carousel-item img {
width: 100%;
height: 100%;
object-fit: cover;
}
使用 @keyframes 创建缩放进入和淡出效果:
立即学习“前端免费学习笔记(深入)”;
@keyframes zoomFade {
0% {
opacity: 0;
transform: scale(1.2);
}
10% {
opacity: 1;
transform: scale(1);
}
90% {
opacity: 1;
transform: scale(1);
}
100% {
opacity: 0;
transform: scale(1.2);
}
}
动画从放大 1.2 倍淡入,保持 1 倍大小一段时间后,再淡出并轻微放大,营造平滑过渡感。
为每个 .carousel-item 添加动画,通过设置不同的延迟时间实现轮播:
.carousel-item:nth-child(1) {
animation: zoomFade 6s ease-in-out 0s infinite;
}
.carousel-item:nth-child(2) {
animation: zoomFade 6s ease-in-out 2s infinite;
}
.carousel-item:nth-child(3) {
animation: zoomFade 6s ease-in-out 4s infinite;
}
每张图延迟 2 秒启动动画,总周期 6 秒,形成循环播放。你可以根据图片数量调整延迟时间。
如果希望鼠标移上时暂停动画,可添加:
.carousel:hover .carousel-item {
animation-play-state: paused;
}
基本上就这些。通过控制 scale() 和 opacity 的变化,配合定时错开的动画延迟,就能实现流畅的缩放轮播效果。不需要 JavaScript,纯 CSS 实现,轻量且兼容性好。
以上就是如何用css animation制作图片缩放轮播的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号