当前位置:首页 > 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:动画结束后元素的样式状态

简写示例:

利用css3制作动画

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

常用过渡属性:

利用css3制作动画

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

标签: 动画
分享给朋友:

相关文章

vue实现滑块动画

vue实现滑块动画

Vue 实现滑块动画的方法 使用 Vue Transition 组件 Vue 的 <transition> 组件可以轻松实现滑块动画效果。通过定义进入和离开的 CSS 过渡类,结合 v-i…

vue实现停止动画

vue实现停止动画

停止动画的方法 在Vue中停止动画可以通过多种方式实现,具体取决于动画的实现方式(CSS动画、JavaScript动画或第三方库如GSAP)。 使用CSS动画 通过动态绑定类名或样式来控制动画的播放…

vue实现动画插件

vue实现动画插件

Vue 动画插件实现方案 Vue 提供了多种实现动画的方式,可以通过内置的 <transition> 组件或第三方插件来实现复杂的动画效果。 使用 Vue 内置 <transiti…

点击实现vue动画

点击实现vue动画

在Vue中实现动画效果可以通过内置的<transition>和<transition-group>组件结合CSS或JavaScript钩子完成。以下是具体方法: 使用CSS过…

vue实现展开动画

vue实现展开动画

使用 Vue Transition 组件实现展开动画 Vue 内置的 Transition 组件可以方便地实现元素的展开/收起动画效果。通过添加 CSS 过渡类名,定义进入和离开的动画过程。…

冒泡排序动画vue实现

冒泡排序动画vue实现

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