当前位置:首页 > CSS

css 动画制作

2026-01-28 03:37:51CSS

CSS 动画基础

CSS 动画通过 @keyframesanimation 属性实现。@keyframes 定义动画关键帧,animation 控制动画的播放方式。

定义一个简单的动画:

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.element {
  animation: fadeIn 2s ease-in-out;
}

常用动画属性

animation 是以下属性的简写:

  • animation-name: 指定 @keyframes 名称
  • animation-duration: 动画持续时间(如 2s
  • animation-timing-function: 速度曲线(如 ease, linear
  • animation-delay: 延迟开始时间
  • animation-iteration-count: 播放次数(infinite 表示无限循环)
  • animation-direction: 播放方向(normal, reverse, alternate
  • animation-fill-mode: 动画结束后的样式状态

复杂关键帧动画

可以在 @keyframes 中定义多个关键帧:

@keyframes bounce {
  0% { transform: translateY(0); }
  50% { transform: translateY(-30px); }
  100% { transform: translateY(0); }
}

性能优化技巧

使用 transformopacity 属性制作动画性能最佳,因为这两个属性不会触发重排(reflow)。避免使用 left, top, margin 等属性制作动画。

硬件加速技巧:

.element {
  transform: translateZ(0);
  backface-visibility: hidden;
  perspective: 1000px;
}

动画事件监听

JavaScript 可以监听 CSS 动画事件:

const element = document.querySelector('.element');
element.addEventListener('animationstart', () => {
  console.log('动画开始');
});
element.addEventListener('animationend', () => {
  console.log('动画结束');
});

实用动画示例

弹跳效果:

@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  25% { transform: translateY(-20px); }
  50% { transform: translateY(-10px); }
  75% { transform: translateY(-5px); }
}

.bounce {
  animation: bounce 0.5s ease infinite;
}

旋转加载动画:

css 动画制作

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.loader {
  animation: spin 1s linear infinite;
  border: 4px solid rgba(0, 0, 0, 0.1);
  border-radius: 50%;
  border-top-color: #3498db;
  width: 40px;
  height: 40px;
}

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

相关文章

css 字体库制作

css 字体库制作

创建 CSS 字体库的步骤 准备字体文件 确保拥有字体文件的合法使用权,常见的格式包括 .woff、.woff2、.ttf 或 .otf。推荐使用 woff2 格式,因其压缩率更高且现代浏览器广泛支持…

css制作下拉导航条

css制作下拉导航条

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

css制作简历

css制作简历

使用CSS制作简历的步骤 设计简历结构 使用HTML创建简历的基本结构,包括个人信息、教育背景、工作经历、技能等部分。确保每个部分都有清晰的标题和内容区域。 基础样式设置 通过CSS设置全局样式,包…

css制作时间轴

css制作时间轴

使用 Flexbox 布局制作时间轴 通过 Flexbox 可以快速实现水平或垂直时间轴。以下是一个垂直时间轴的示例代码: .timeline { display: flex; flex-d…

css怎么制作个人主页

css怎么制作个人主页

设计布局结构 使用CSS的Flexbox或Grid布局创建响应式结构。Flexbox适合一维排列(如导航栏),Grid适合二维布局(如整体页面分区)。例如: .container { displ…

css制作菜单

css制作菜单

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