当前位置:首页 > CSS

css动画制作

2026-02-26 20:50:28CSS

CSS动画制作基础

CSS动画通过@keyframes规则和animation属性实现。定义关键帧后,将其绑定到元素并设置动画参数。

@keyframes slideIn {
  from { transform: translateX(-100%); }
  to { transform: translateX(0); }
}

.element {
  animation: slideIn 1s ease-out forwards;
}

关键属性说明

animation是以下子属性的简写:

  • animation-name: 指定@keyframes名称
  • animation-duration: 动画持续时间(如2s
  • animation-timing-function: 速度曲线(ease, linear等)
  • animation-delay: 延迟开始时间
  • animation-iteration-count: 重复次数(infinite表示无限循环)
  • animation-direction: 播放方向(alternate表示往返播放)
  • animation-fill-mode: 结束状态保留(forwards保留最后一帧)

多关键帧动画

@keyframes中可以定义多个中间状态:

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

性能优化建议

使用transformopacity属性制作动画,这些属性不会触发重排:

  • 优先使用transform: translate()替代top/left
  • 使用opacity替代displayvisibility切换
  • 避免在动画中使用box-shadow等高性能消耗属性

动画事件监听

通过JavaScript监听动画事件:

element.addEventListener('animationstart', () => {});
element.addEventListener('animationend', () => {});
element.addEventListener('animationiteration', () => {});

实用示例:悬停效果

.button {
  transition: transform 0.3s, background-color 0.2s;
}
.button:hover {
  transform: scale(1.05);
  background-color: #f0f0f0;
}

进阶技巧

使用CSS变量动态控制动画:

:root {
  --anim-duration: 0.5s;
}
.element {
  animation: spin var(--anim-duration) linear infinite;
}

通过prefers-reduced-motion媒体查询为运动敏感用户提供替代方案:

@media (prefers-reduced-motion: reduce) {
  .element {
    animation: none;
  }
}

css动画制作

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

相关文章

css制作菜单

css制作菜单

水平菜单制作 使用display: inline-block或flexbox布局创建水平菜单。设置list-style: none移除默认列表样式,添加padding和margin调整间距。 <…

css怎么制作三角形

css怎么制作三角形

使用边框制作三角形 通过设置元素的边框宽度和颜色,可以创建不同方向的三角形。将元素的宽度和高度设为0,利用边框的透明属性实现。 .triangle-up { width: 0; he…

制作css外部

制作css外部

创建CSS外部文件的方法 新建一个纯文本文件,将文件扩展名改为.css,例如styles.css。确保文件内容只包含CSS代码,不包含HTML标签。 编写CSS内容 在CSS文件中直接编写样式规则…

css制作扇形图

css制作扇形图

使用CSS制作扇形图 方法一:使用clip-path和transform 通过CSS的clip-path和transform属性可以快速实现扇形效果。定义一个圆形元素,然后裁剪出扇形部分。 .fa…

旋转相册制作css

旋转相册制作css

旋转相册制作CSS 旋转相册通常通过CSS动画和3D变换实现,以下是一个完整的实现方法: 基础HTML结构 <div class="photo-album"> <div cl…

css制作卷边效果

css制作卷边效果

使用伪元素和渐变实现卷边效果 通过CSS伪元素和线性渐变可以模拟纸张卷边的视觉效果。这种方法不需要额外元素,仅通过::before或::after伪元素实现。 .element { posit…