当前位置:首页 > 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 实现旋转、缩放等效果:

@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 渲染。

示例:

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

加载旋转动画

制作css动画效果

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

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

相关文章

vue哪个组件实现动画

vue哪个组件实现动画

在Vue中实现动画效果,可以通过以下组件和方法实现: Vue内置动画组件 Vue提供了<transition>和<transition-group>两个内置组件,用于处理进入…

jquery 动画

jquery 动画

jQuery 动画基础 jQuery 提供了一系列动画方法,用于实现元素的动态效果,如淡入淡出、滑动、自定义动画等。 常用动画方法 fadeIn() / fadeOut(): 元素的淡入和…

h5所能实现的效果

h5所能实现的效果

H5能实现的效果 H5(HTML5)作为最新的HTML标准,具备强大的功能和丰富的API支持,能够实现多种现代Web应用效果。以下是H5的主要能力分类: 多媒体支持 H5原生支持音频和视频播放,无需…

vue动画实现原理

vue动画实现原理

Vue动画实现原理 Vue的动画系统基于CSS过渡和动画,结合Vue的响应式系统,提供声明式的方式管理元素进入/离开的动画效果。核心原理分为以下几个部分: 过渡类名自动应用 Vue在元素插入…

vue实现进入动画

vue实现进入动画

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

react如何添加效果

react如何添加效果

React 添加动画效果的方法 使用 CSS 过渡动画 在 React 组件中直接通过 className 或 style 属性应用 CSS 过渡效果。定义 CSS 类包含 transition 属性…