当前位置:首页 > 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基础语法 CSS规则由选择器和声明块组成。选择器指向需要设置样式的HTML元素,声明块包含一个或多个用分号分隔的声明。每个声明由属性和值组成,用冒号分隔。 选择器 { 属性: 值; 属…

使用css制作钢琴块

使用css制作钢琴块

使用 CSS 制作钢琴块 钢琴块通常由黑白键交替排列组成,可以通过 HTML 和 CSS 实现。以下是实现钢琴块的步骤: HTML 结构 创建一个包含黑白键的容器,使用 <div> 元素…

css制作便签

css制作便签

CSS制作便签的方法 使用CSS可以轻松创建具有便签效果的样式,以下是一种常见的实现方式: HTML结构 <div class="note"> <h3>便签标题<…

css制作菜单

css制作菜单

CSS 制作菜单的方法 使用 CSS 可以制作多种风格的菜单,包括水平菜单、垂直菜单、下拉菜单等。以下是几种常见的实现方式。 水平菜单 水平菜单通常用于导航栏,可以通过 display: inlin…

jquery css

jquery css

jQuery 操作 CSS 的方法 jQuery 提供了多种方法来操作元素的 CSS 样式,包括获取、设置、添加或移除样式。以下是常用的方法: 获取 CSS 属性值 使用 .css() 方法获取元素…

jquery 动画

jquery 动画

jQuery 动画基础 jQuery 提供了一系列动画方法,用于实现元素的动态效果,如淡入淡出、滑动、自定义动画等。 常用动画方法 fadeIn() / fadeOut(): 元素的淡入和…