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

创建加载旋转动画:

利用css3制作动画

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

标签: 动画
分享给朋友:

相关文章

vue动画实现方式

vue动画实现方式

Vue 动画实现方式 Vue 提供了多种方式来实现动画效果,主要通过内置的 <transition> 和 <transition-group> 组件以及结合 CSS 或 Jav…

vue实现半场动画

vue实现半场动画

Vue 实现半场动画 在 Vue 中实现半场动画通常指的是动画执行到一半时停止或改变状态。可以通过 Vue 的过渡系统或第三方动画库(如 GSAP)实现。 使用 Vue 过渡 Vue 提供了 <…

vue实现首页动画

vue实现首页动画

Vue 实现首页动画的方法 在 Vue 中实现首页动画可以通过多种方式,包括使用 CSS 动画、Vue 过渡效果、第三方动画库等。以下是一些常见的实现方法。 使用 CSS 动画 通过 Vue 的 v…

vue实现过度动画

vue实现过度动画

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

冒泡排序动画vue实现

冒泡排序动画vue实现

冒泡排序动画的 Vue 实现 冒泡排序是一种简单的排序算法,通过重复遍历列表,比较相邻元素并交换顺序错误的元素。在 Vue 中实现冒泡排序动画可以通过数据绑定和过渡效果直观展示排序过程。 核心实现步…

vue 实现切屏动画

vue 实现切屏动画

实现切屏动画的基本方法 在Vue中实现切屏动画通常结合Vue的过渡系统(<transition>或<transition-group>)和CSS动画。以下是几种常见实现方式:…