- A+
所属分类:教程文章

实现轮播图的平滑切换,关键在于利用 opacity(透明度)和 transform(位移或缩放)配合 transition 实现视觉过渡效果。这种方式性能好、动画流畅,是现代前端开发中的常用方案。
1. 基本结构与样式布局
轮播图通常由一个容器包裹多个图片项,每个项默认绝对定位,叠在一起。
<div class="carousel"> <img src="img1.jpg" class="slide active" /> <img src="img2.jpg" class="slide" /> <img src="img3.jpg" class="slide" /> </div>
基础CSS设置:
.carousel {
position: relative;
width: 600px;
height: 400px;
overflow: hidden;
}
<p>.slide {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
transition: opacity 0.5s ease, transform 0.5s ease;
}</p><p>.active {
opacity: 1;
transform: translateX(0);
}</p>
2. 使用 opacity 控制显隐
通过改变 opacity 实现淡入淡出效果。当前显示的图片 opacity 设为 1,其他为 0。
立即学习“前端免费学习笔记(深入)”;
transition 设置 opacity 过渡时间,使变化不突兀。
注意:不要使用 display: none,否则会中断 transition 动画。
3. 结合 transform 增强动画效果
除了透明度,还可以加入位移或缩放增强视觉层次。

FashionLabs

38
AI服装模特、商品图,可商用,低价提升销量神器

38
查看详情

例如:新图从右侧滑入,旧图向左滑出:
.active {
opacity: 1;
transform: translateX(0);
}
<p>/<em> 切换过程中,即将隐藏的项 </em>/
.slide {
opacity: 0;
transform: translateX(100%);
}</p><p>/<em> 即将显示的项可设为从左侧进入 </em>/
.next-slide {
transform: translateX(-100%);
}</p>
JavaScript 控制类名切换时,浏览器会自动触发 transition 动画。
4. JavaScript 控制切换逻辑
定时或手动切换 active 类即可实现轮播:
const slides = document.querySelectorAll('.slide');
let currentIndex = 0;
<p>function showSlide(index) {
slides.forEach(slide => slide.classList.remove('active'));
slides[index].classList.add('active');
}</p><p>function nextSlide() {
currentIndex = (currentIndex + 1) % slides.length;
showSlide(currentIndex);
}</p><p>setInterval(nextSlide, 3000); // 每3秒切换</p>
每次调用 showSlide,新的图片加上 active 类,transition 自动生效,实现平滑过渡。
基本上就这些。opacity 负责淡入淡出,transform 提供位移动画,transition 让变化更自然。三者结合,简单高效地实现轮播图切换效果。




