当前位置:首页 > 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 属性将动画绑定到元素。常用子属性包括:

利用css3制作动画

  • 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;
}

复合动画

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

利用css3制作动画

@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; }
}

标签: 动画
分享给朋友:

相关文章

vue 实现动画

vue 实现动画

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

vue实现消息动画

vue实现消息动画

Vue 实现消息动画的方法 使用 Vue Transition 组件 Vue 内置的 <transition> 组件可以方便地实现消息动画效果。通过添加 CSS 过渡或动画类名,可以实现平…

vue实现页面动画切换

vue实现页面动画切换

使用 Vue 过渡组件实现动画切换 Vue 提供了内置的 <transition> 和 <transition-group> 组件,可以方便地实现页面或元素的动画切换效果。通过…

vue实现滚动动画

vue实现滚动动画

Vue 实现滚动动画的方法 使用 CSS Transition 和 Vue 指令 在 Vue 中可以通过结合 CSS Transition 和自定义指令实现滚动动画效果。定义一个指令监听元素的滚动位置…

vue实现点击弧线动画

vue实现点击弧线动画

实现点击弧线动画的方法 在Vue中实现点击弧线动画可以通过CSS和JavaScript结合的方式完成。以下是具体实现步骤: 使用CSS和Vue事件绑定 通过Vue的@click事件触发动画,结合CS…

vue中实现动画效果

vue中实现动画效果

在Vue中实现动画效果可以通过多种方式,包括内置组件、CSS动画库或JavaScript动画库。以下是几种常见方法: 使用Vue内置的过渡组件 Vue提供了<transition>和&l…