当前位置:首页 > CSS

利用css3制作动画

2026-02-12 16:55:16CSS

CSS3 动画基础

CSS3 动画通过 @keyframes 规则和 animation 属性实现,无需 JavaScript 即可创建平滑的动态效果。关键帧定义动画的各个阶段,animation 属性控制动画的播放方式。

定义关键帧

使用 @keyframes 规则定义动画序列。语法如下:

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

示例:创建一个元素从左向右移动的动画:

@keyframes slide {
  from { transform: translateX(0); }
  to { transform: translateX(100px); }
}

应用动画

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

  • animation-name: 指定 @keyframes 名称。
  • animation-duration: 动画持续时间(如 2s)。
  • animation-timing-function: 速度曲线(如 ease-in-out)。
  • animation-delay: 动画延迟时间。
  • animation-iteration-count: 播放次数(infinite 表示循环)。
  • animation-direction: 播放方向(如 alternate 往返播放)。

示例:让一个方块滑动并循环:

.box {
  width: 50px;
  height: 50px;
  background: blue;
  animation: slide 2s ease-in-out infinite alternate;
}

复合动画

通过逗号分隔可同时应用多个动画。例如旋转和移动:

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

.box {
  animation: slide 3s linear infinite, rotate 1.5s linear infinite;
}

动画事件监听

通过 JavaScript 监听动画事件(如开始、结束):

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

性能优化

优先使用 transformopacity 属性,它们会触发 GPU 加速,避免使用 left/top 等可能引发重排的属性。启用硬件加速示例:

.box {
  transform: translateZ(0);
}

响应式动画

结合媒体查询调整动画行为:

利用css3制作动画

@media (max-width: 600px) {
  .box { animation-duration: 1s; }
}

标签: 动画
分享给朋友:

相关文章

vue 动画实现

vue 动画实现

Vue 动画实现方式 Vue 提供了多种方式实现动画效果,主要分为内置组件和第三方库集成。 使用 Vue 内置过渡组件 Vue 的 <transition> 和 <transiti…

vue实现gif动画

vue实现gif动画

Vue 中实现 GIF 动画的方法 在 Vue 中实现 GIF 动画可以通过多种方式完成,具体取决于需求和使用场景。以下是几种常见的方法: 直接使用 <img> 标签加载 GIF 最简单…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

vue实现border动画

vue实现border动画

实现边框动画的方法 在Vue中实现边框动画可以通过CSS动画或过渡效果结合Vue的动态样式绑定来实现。以下是几种常见的方法: 使用CSS过渡和Vue的class绑定 通过动态添加或移除CSS类来触发…

vue实现翻页动画

vue实现翻页动画

实现翻页动画的基本思路 在Vue中实现翻页动画通常需要结合CSS过渡或动画效果。可以通过Vue的过渡组件<transition>或<transition-group>来实现页面…

vue实现过度动画

vue实现过度动画

Vue过渡动画的实现方式 Vue提供了<transition>和<transition-group>组件来实现元素进入/离开的过渡动画效果,主要通过CSS或JavaScript…