当前位置:首页 > CSS

CSS动画制作代码

2026-04-02 03:58:10CSS

以下是一些常见的CSS动画制作代码示例,涵盖基础动画、关键帧动画和过渡效果:

基础关键帧动画

通过@keyframes定义动画序列,结合animation属性应用动画:

/* 定义关键帧 */
@keyframes slide-in {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0);
  }
}

/* 应用动画 */
.element {
  animation: slide-in 1s ease-out forwards;
}

多阶段关键帧动画

定义包含多个百分比节点的复杂动画:

CSS动画制作代码

@keyframes bounce {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-30px);
  }
  100% {
    transform: translateY(0);
  }
}

.element {
  animation: bounce 0.5s infinite;
}

过渡效果(Transition)

通过状态变化触发平滑过渡:

.button {
  background-color: blue;
  transition: background-color 0.3s ease;
}

.button:hover {
  background-color: red;
}

复合动画属性

同时控制多个动画参数:

CSS动画制作代码

.element {
  animation: 
    rotate 2s linear infinite,
    fade 3s ease-in-out alternate;
}

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

@keyframes fade {
  from { opacity: 0.5; }
  to { opacity: 1; }
}

3D变换动画

使用transform-style和透视效果:

.container {
  perspective: 1000px;
}

.card {
  transform-style: preserve-3d;
  transition: transform 1s;
}

.card:hover {
  transform: rotateY(180deg);
}

性能优化技巧

使用will-change预声明动画属性:

.optimized {
  will-change: transform, opacity;
  animation: slide 2s ease;
}

注意:

  • 使用transformopacity属性可获得最佳性能
  • 避免动画过多影响页面性能
  • 考虑使用prefers-reduced-motion媒体查询为运动敏感用户提供替代方案

分享给朋友:

相关文章

vue 实现git代码对比

vue 实现git代码对比

Vue 实现 Git 代码对比 在 Vue 中实现 Git 代码对比功能,可以通过集成现有的代码对比库或调用 Git 相关 API 来实现。以下是几种常见的方法: 使用 diff2html 库 di…

vue长轮询代码实现

vue长轮询代码实现

Vue 长轮询实现方法 长轮询(Long Polling)是一种服务器推送技术,客户端发送请求后,服务器保持连接开放直到有新数据或超时。以下是 Vue 中实现长轮询的代码示例。 基本实现逻辑 定义一…

vue交错实现代码

vue交错实现代码

Vue 交错动画实现方法 使用 Vue 的 <transition-group> 组件结合 CSS 过渡可以实现交错动画效果。以下是一个典型实现方式: <template>…

vue代码实现清除缓存

vue代码实现清除缓存

清除浏览器缓存的方法 在Vue项目中清除缓存通常涉及版本控制、强制刷新或服务端配置。以下是几种常见实现方式: 修改文件名添加哈希 通过webpack配置在打包时为静态文件添加哈希值,确保每次更新后文…

如何预览react代码

如何预览react代码

预览 React 代码的方法 本地开发环境预览 安装 Node.js 和 npm/yarn,通过 create-react-app 或 Vite 创建项目后,运行开发服务器(如 npm start)。…

react如何进行代码拆分

react如何进行代码拆分

代码拆分的必要性 React应用随着功能增加,打包后的文件体积会显著增长,影响页面加载速度。代码拆分将代码分割成多个小块,按需加载,优化性能。 动态导入(Dynamic Imports) 使用ES6…