当前位置:首页 > CSS

css制作动画轮播

2026-04-01 23:08:25CSS

CSS 动画轮播实现方法

方法一:使用 CSS Animation 和 @keyframes

通过 @keyframes 定义动画关键帧,结合 animation 属性实现自动轮播效果。

<div class="slider">
  <div class="slide">Slide 1</div>
  <div class="slide">Slide 2</div>
  <div class="slide">Slide 3</div>
</div>
.slider {
  width: 300px;
  height: 200px;
  overflow: hidden;
  position: relative;
}

.slide {
  width: 100%;
  height: 100%;
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  color: white;
  animation: slide 9s infinite;
}

.slide:nth-child(1) {
  background: red;
  animation-delay: 0s;
}

.slide:nth-child(2) {
  background: green;
  animation-delay: -3s;
}

.slide:nth-child(3) {
  background: blue;
  animation-delay: -6s;
}

@keyframes slide {
  0% { transform: translateX(100%); }
  10% { transform: translateX(0); }
  33.33% { transform: translateX(0); }
  43.33% { transform: translateX(-100%); }
  100% { transform: translateX(-100%); }
}

方法二:使用 CSS Transition 和 JavaScript 控制

通过 CSS Transition 实现平滑过渡效果,JavaScript 控制轮播逻辑。

<div class="slider">
  <div class="slides-container">
    <div class="slide">Slide 1</div>
    <div class="slide">Slide 2</div>
    <div class="slide">Slide 3</div>
  </div>
</div>
.slider {
  width: 300px;
  height: 200px;
  overflow: hidden;
}

.slides-container {
  display: flex;
  width: 300%;
  transition: transform 0.5s ease;
}

.slide {
  width: 300px;
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  color: white;
}

.slide:nth-child(1) { background: red; }
.slide:nth-child(2) { background: green; }
.slide:nth-child(3) { background: blue; }
const container = document.querySelector('.slides-container');
let currentIndex = 0;

function nextSlide() {
  currentIndex = (currentIndex + 1) % 3;
  container.style.transform = `translateX(-${currentIndex * 100}%)`;
}

setInterval(nextSlide, 3000);

方法三:纯 CSS 无限轮播

利用 animation@keyframes 实现无限循环轮播效果。

<div class="slider">
  <div class="slides">
    <div class="slide">Slide 1</div>
    <div class="slide">Slide 2</div>
    <div class="slide">Slide 3</div>
    <div class="slide">Slide 1</div> <!-- 重复第一个实现无缝衔接 -->
  </div>
</div>
.slider {
  width: 300px;
  height: 200px;
  overflow: hidden;
}

.slides {
  display: flex;
  width: 400%;
  animation: slide 6s infinite linear;
}

.slide {
  width: 300px;
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  color: white;
}

.slide:nth-child(1) { background: red; }
.slide:nth-child(2) { background: green; }
.slide:nth-child(3) { background: blue; }

@keyframes slide {
  0% { transform: translateX(0); }
  25% { transform: translateX(-25%); }
  50% { transform: translateX(-50%); }
  75% { transform: translateX(-75%); }
  100% { transform: translateX(-75%); }
}

注意事项

css制作动画轮播

  • 确保轮播容器设置 overflow: hidden 隐藏溢出内容
  • 动画时间根据需求调整,注意计算各阶段百分比
  • 考虑添加悬停暂停功能:.slider:hover .slide { animation-play-state: paused; }
  • 移动端适配可能需要调整视口单位和触摸事件处理

标签: 动画css
分享给朋友:

相关文章

css制作表单

css制作表单

使用CSS制作表单的基本方法 创建一个美观且功能完善的表单需要结合HTML结构和CSS样式。以下是关键步骤和示例代码: HTML基础结构 <form class="my-form">…

css制作下拉导航条

css制作下拉导航条

使用纯CSS制作下拉导航条 HTML结构部分需要包含导航主菜单和子菜单项,通常使用嵌套的无序列表(<ul>和<li>)实现: <nav class="dropdown-…

css制作锁屏页面

css制作锁屏页面

使用CSS制作锁屏页面 锁屏页面通常包含一个背景、时间显示以及可能的解锁按钮或输入框。以下是实现锁屏页面的关键CSS代码和结构。 HTML结构 <!DOCTYPE html> <h…

css制作网站

css制作网站

基础结构与样式设置 HTML文件需包含基本结构,CSS通过<style>标签内嵌或外链.css文件引入。全局样式重置常用* { margin: 0; padding: 0; }清除默认间距…

css导航栏制作

css导航栏制作

CSS导航栏制作方法 水平导航栏 使用display: inline-block或flexbox实现水平导航栏。设置背景色、内边距和悬停效果增强交互性。 .navbar { backgroun…

vue动画实现原理

vue动画实现原理

Vue动画实现原理 Vue的动画系统基于CSS过渡和动画,结合Vue的响应式系统,提供声明式的方式管理元素进入/离开的动画效果。核心原理分为以下几个部分: 过渡类名自动应用 Vue在元素插入…