当前位置:首页 > CSS

制作css动画效果

2026-04-02 06:46:26CSS

CSS 动画基础语法

使用 @keyframes 定义动画关键帧,再通过 animation 属性将动画应用到元素:

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.element {
  animation: fadeIn 2s ease-in-out;
}
  • fadeIn 是动画名称,fromto 定义起始和结束状态。
  • animation 是简写属性,包含时长、缓动函数等参数。

常用动画属性

  1. animation-name
    指定 @keyframes 名称。
  2. animation-duration
    动画时长(如 2s)。
  3. animation-timing-function
    控制速度曲线(如 easelinear)。
  4. animation-delay
    延迟开始时间(如 1s)。
  5. animation-iteration-count
    播放次数(如 infinite 表示循环)。

示例:

.element {
  animation: bounce 1s ease-in-out 0.5s infinite alternate;
}

关键帧进阶控制

@keyframes 中可使用百分比定义多阶段动画:

@keyframes move {
  0% { transform: translateX(0); }
  50% { transform: translateX(100px); }
  100% { transform: translateX(0); }
}
  • 0%100% 分别对应动画开始和结束。
  • 中间百分比(如 50%)插入过渡状态。

结合 Transform 属性

通过 transform 实现旋转、缩放等效果:

制作css动画效果

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

.spinner {
  animation: spin 2s linear infinite;
}

常用变换函数:

  • rotate():旋转
  • scale():缩放
  • translate():位移

动画性能优化

  1. 优先使用 transformopacity
    这两个属性不会触发重排(reflow),性能更高。
  2. 避免过度使用 box-shadow
    阴影计算消耗资源较多。
  3. 启用硬件加速
    使用 transform: translateZ(0) 强制 GPU 渲染。

示例:

制作css动画效果

.optimized {
  transform: translateZ(0);
  animation: slide 1s ease-out;
}

响应式动画控制

通过 JavaScript 动态控制动画:

const element = document.querySelector('.box');
element.style.animationPlayState = 'paused'; // 暂停动画
element.style.animation = 'fadeIn 2s forwards'; // 重新触发
  • animationPlayState 可暂停或恢复动画。
  • 修改 animation 属性可重新播放。

实际应用示例

悬停放大效果

.button {
  transition: transform 0.3s ease;
}
.button:hover {
  transform: scale(1.1);
}

加载旋转动画

@keyframes loading {
  to { transform: rotate(360deg); }
}
.loader {
  animation: loading 1s linear infinite;
}

标签: 效果动画
分享给朋友:

相关文章

css3制作简单动画

css3制作简单动画

CSS3 制作简单动画的方法 CSS3 提供了多种方式制作动画,主要通过 transition、transform 和 animation 属性实现。以下是几种常见的实现方法。 使用 transit…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

vue实现基金效果

vue实现基金效果

Vue 实现基金效果 在 Vue 中实现基金效果,通常指的是模拟基金的增长、波动或可视化展示。以下是几种常见的实现方式: 数据绑定与动态更新 通过 Vue 的数据绑定特性,可以动态展示基金净值的变化…

vue实现滑动效果

vue实现滑动效果

Vue 实现滑动效果的方法 在 Vue 中实现滑动效果可以通过多种方式,包括使用 CSS 过渡、第三方动画库或直接操作 DOM。以下是几种常见的方法: 使用 CSS 过渡和 Vue 的 <tr…

vue实现筛选效果

vue实现筛选效果

Vue 实现筛选效果的方法 基于计算属性的筛选 在 Vue 中可以通过计算属性实现数据的动态筛选。定义一个计算属性,根据用户输入的筛选条件返回过滤后的数据列表。 <template>…

vue 实现滑动效果

vue 实现滑动效果

Vue 实现滑动效果的方法 使用 CSS Transition 通过 Vue 的 v-if 或 v-show 结合 CSS Transition 实现滑动效果。定义一个 CSS 类,利用 transf…