当前位置:首页 > 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);
}

响应式动画

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

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

利用css3制作动画

标签: 动画
分享给朋友:

相关文章

vue 实现动画

vue 实现动画

Vue 动画实现方法 Vue 提供了多种方式实现动画效果,包括内置组件、CSS 过渡/动画以及第三方库集成。 使用 <transition> 组件 Vue 内置的 <transi…

jquery动画

jquery动画

jQuery动画基础 jQuery提供了多种动画方法,用于创建平滑的过渡效果。常用的动画方法包括animate()、fadeIn()、fadeOut()、slideUp()和slideDown()。…

vue实现共享动画

vue实现共享动画

Vue 实现共享动画的方法 在 Vue 中实现共享动画(即多个元素间平滑过渡的动画效果)可以通过 Vue 的过渡系统和第三方库(如 GSAP)来实现。以下是几种常见方法: 使用 Vue 的 <…

vue点击实现动画

vue点击实现动画

Vue 中实现点击动画的方法 使用 CSS 过渡和 Vue 的 v-on 指令 在 Vue 模板中绑定 @click 事件,通过修改数据属性触发 CSS 过渡效果。示例代码: <templat…

elementui动画

elementui动画

ElementUI 动画使用指南 ElementUI 提供了内置的过渡动画效果,主要通过 Vue 的 <transition> 组件实现。以下为常见动画应用方法: 淡入淡出动画 通过 e…

vue实现border动画

vue实现border动画

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