当前位置:首页 > CSS

css动画制作教学

2026-04-02 01:30:13CSS

CSS 动画基础概念

CSS 动画通过 @keyframes 规则和 animation 属性实现。@keyframes 定义动画的关键帧,animation 控制动画的播放方式(如时长、延迟、循环等)。

定义关键帧

通过 @keyframes 规则定义动画的起始和结束状态,或中间阶段的样式变化。语法如下:

@keyframes 动画名称 {
  0% { /* 初始状态 */ }
  50% { /* 中间状态 */ }
  100% { /* 结束状态 */ }
}

示例:实现元素从左向右移动的动画

@keyframes slide {
  0% { transform: translateX(0); }
  100% { transform: translateX(200px); }
}

应用动画

通过 animation 属性将动画绑定到元素。常用子属性包括:

  • animation-name: 动画名称(与 @keyframes 一致)。
  • animation-duration: 动画持续时间(如 2s)。
  • animation-timing-function: 速度曲线(如 ease-in-out)。
  • animation-delay: 延迟时间(如 1s)。
  • animation-iteration-count: 播放次数(如 infinite 表示无限循环)。

示例:将 slide 动画应用到 div 元素

div {
  width: 100px;
  height: 100px;
  background: red;
  animation: slide 3s ease-in-out infinite;
}

动画速度曲线

animation-timing-function 控制动画的加速度,可选值:

  • linear: 匀速。
  • ease: 默认值,慢快慢。
  • ease-in: 慢到快。
  • ease-out: 快到慢。
  • cubic-bezier(n,n,n,n): 自定义贝塞尔曲线。

示例:自定义贝塞尔曲线

div {
  animation-timing-function: cubic-bezier(0.1, 0.7, 1.0, 0.1);
}

动画方向与填充模式

  • animation-direction: 控制播放方向(normalreversealternate)。
  • animation-fill-mode: 定义动画结束后的状态(forwards 保留最后一帧)。

示例:动画结束后保留最后一帧

div {
  animation: slide 2s forwards;
}

复合动画

通过逗号分隔,为元素添加多个动画:

div {
  animation: 
    slide 3s ease-in-out infinite,
    fade 2s ease-out;
}

响应式动画

结合媒体查询实现不同屏幕尺寸下的动画效果:

css动画制作教学

@media (max-width: 600px) {
  div {
    animation: slide-mobile 2s;
  }
}

性能优化建议

  • 优先使用 transformopacity 属性,它们可通过 GPU 加速。
  • 避免频繁触发重绘(如修改 width/height)。
  • 使用 will-change 提示浏览器优化:
    div {
      will-change: transform;
    }

示例:心跳动画

@keyframes heartbeat {
  0% { transform: scale(1); }
  50% { transform: scale(1.2); }
  100% { transform: scale(1); }
}

.heart {
  animation: heartbeat 1s infinite;
}

调试工具

浏览器开发者工具(如 Chrome DevTools)可实时查看和修改动画曲线、时间等参数。

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

相关文章

纯css制作幻灯片

纯css制作幻灯片

纯CSS制作幻灯片的方法 使用纯CSS制作幻灯片主要依赖CSS动画和关键帧(@keyframes)技术,结合HTML结构实现轮播效果。以下是两种常见的实现方式: 方法一:使用CSS动画和无限循环 H…

css立体相册制作

css立体相册制作

制作CSS立体相册 使用CSS3的3D变换和过渡效果可以创建一个立体相册。以下是一个基本的实现方法。 HTML结构 <div class="photo-album"> <di…

css焦点图制作

css焦点图制作

使用纯CSS制作焦点图 通过CSS的动画和过渡效果实现简单焦点图轮播,无需JavaScript。以下是一个基础实现方案: <div class="slider"> <div c…

css图形制作

css图形制作

CSS 图形制作方法 使用 CSS 可以创建各种基本和复杂的图形,主要通过 border、transform、clip-path 等属性实现。以下是几种常见图形的实现方式: 三角形 通过设置元素的…

如何制作css导航菜单

如何制作css导航菜单

创建基本HTML结构 导航菜单的基础是HTML结构。使用<nav>标签包裹无序列表<ul>,每个菜单项用<li>标签表示,链接用<a>标签。 <…

css如何制作未读图标

css如何制作未读图标

未读图标实现方法 通过CSS可以创建多种未读图标的样式,以下是几种常见的实现方式: 使用伪元素创建小红点 .unread-badge { position: relative; displa…