当前位置:首页 > CSS

利用css3制作动画

2026-01-27 22:29:22CSS

CSS3 动画基础

CSS3 提供了 @keyframes 规则和 animation 属性来创建动画效果。@keyframes 定义动画的关键帧,animation 属性用于将动画应用到元素上。

定义关键帧:

@keyframes example {
  0%   { background-color: red; }
  50%  { background-color: yellow; }
  100% { background-color: green; }
}

应用动画:

div {
  animation-name: example;
  animation-duration: 4s;
}

常用动画属性

animation 是以下属性的简写:

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

简写示例:

div {
  animation: example 3s ease-in-out 1s infinite alternate;
}

变换动画(Transform)

结合 transform 属性创建位移、旋转、缩放等效果:

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

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

@keyframes scale {
  50% { transform: scale(1.5); }
}

过渡动画(Transition)

用于在元素状态改变时平滑过渡:

div {
  transition: all 0.3s ease-out;
}
div:hover {
  width: 200px;
  background: blue;
}

常用过渡属性:

  • transition-property:指定过渡的CSS属性
  • transition-duration:过渡持续时间
  • transition-timing-function:速度曲线
  • transition-delay:延迟时间

性能优化技巧

使用 will-change 属性提前告知浏览器哪些属性会变化:

.element {
  will-change: transform, opacity;
}

优先使用 transformopacity 创建动画,这些属性不会触发重排,性能更好。避免动画过程中改变盒模型属性(如 widthmargin 等)。

复杂动画示例

创建弹跳效果:

@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-50px); }
}
.ball {
  animation: bounce 1s cubic-bezier(0.28, 0.84, 0.42, 1) infinite;
}

创建加载旋转动画:

@keyframes spin {
  to { transform: rotate(360deg); }
}
.spinner {
  animation: spin 1s linear infinite;
  border: 4px solid rgba(0,0,0,0.1);
  border-radius: 50%;
  border-top-color: #09f;
  width: 40px;
  height: 40px;
}

利用css3制作动画

标签: 动画
分享给朋友:

相关文章

vue实现gif动画

vue实现gif动画

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

vue实现进入动画

vue实现进入动画

Vue 进入动画实现方法 使用 Vue 的过渡系统实现进入动画,主要通过 <transition> 或 <transition-group> 组件结合 CSS 或 JavaSc…

vue实现路由动画

vue实现路由动画

路由动画的实现方法 在Vue中实现路由动画通常结合<transition>组件和Vue Router的导航守卫。以下是几种常见实现方式: 基础过渡动画 <template>…

vue实现动画特效

vue实现动画特效

Vue 实现动画特效的方法 Vue 提供了多种方式实现动画特效,主要通过内置组件和第三方库结合 CSS 或 JavaScript 完成。以下是常见的实现方法: 使用 Vue 内置过渡组件 Vue…

vue实现动画代码

vue实现动画代码

Vue 动画实现方法 Vue 提供了多种方式实现动画效果,包括内置过渡组件、CSS 动画库集成以及第三方动画库结合。以下是几种常见实现方法: 使用 Vue 内置过渡组件 Vue 的 <tran…

vue负责动画实现

vue负责动画实现

Vue 动画实现方法 Vue 提供了多种方式来实现动画效果,主要通过内置组件和第三方库支持。 使用 Vue 内置过渡组件 Vue 的 transition 和 transition-group 组…