当前位置:首页 > CSS

css动画效果制作

2026-04-02 18:14:09CSS

CSS动画效果制作方法

CSS动画可以通过@keyframes规则和animation属性实现,以下是具体实现方式:

定义关键帧动画 使用@keyframes定义动画序列,从0%到100%描述动画的各个阶段:

@keyframes slideIn {
  0% {
    transform: translateX(-100%);
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 1;
  }
}

应用动画到元素 通过animation属性将定义好的动画应用到元素上:

.element {
  animation: slideIn 1s ease-in-out forwards;
}

常用动画属性详解

animation-name 指定要使用的@keyframes动画名称。

animation-duration 设置动画完成一个周期所需时间,单位秒(s)或毫秒(ms)。

animation-timing-function 定义动画速度曲线:

  • ease:默认值,慢速开始然后变快最后慢速结束
  • linear:匀速
  • ease-in:慢速开始
  • ease-out:慢速结束
  • cubic-bezier(n,n,n,n):自定义速度曲线

animation-delay 设置动画开始前的延迟时间。

animation-iteration-count 定义动画播放次数:

css动画效果制作

  • infinite:无限循环
  • 数字:具体循环次数

animation-direction 控制动画播放方向:

  • normal:正向播放
  • reverse:反向播放
  • alternate:先正向再反向交替
  • alternate-reverse:先反向再正向交替

animation-fill-mode 规定动画执行前后如何应用样式:

  • forwards:保持最后一个关键帧样式
  • backwards:应用第一个关键帧样式
  • both:同时应用前后样式

实用动画示例

淡入淡出效果

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

.fade-in {
  animation: fade 2s ease-in;
}

弹跳效果

css动画效果制作

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

.bounce {
  animation: bounce 0.5s infinite;
}

旋转加载动画

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

.loader {
  animation: spin 1s linear infinite;
}

性能优化建议

使用transformopacity属性制作动画,这些属性不会触发重排和重绘,性能最佳。

避免在动画中使用box-shadowborder-radius等昂贵属性。

使用will-change属性预先告知浏览器元素将要变化:

.animated-element {
  will-change: transform, opacity;
}

浏览器兼容性处理

为不同浏览器添加前缀:

@-webkit-keyframes example {
  /* ... */
}
@keyframes example {
  /* ... */
}

.element {
  -webkit-animation: example 1s;
  animation: example 1s;
}

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

相关文章

vue实现共享动画

vue实现共享动画

Vue 共享动画实现方法 使用 Vue Transition 组件 Vue 内置的 Transition 组件可以实现元素进入/离开的过渡效果。通过命名过渡和 mode 属性可以控制多个元素的过渡顺序…

css3动画制作工具

css3动画制作工具

CSS3 动画制作工具推荐 以下是几款流行的工具和资源,可帮助快速创建CSS3动画,涵盖可视化工具、代码生成器和学习平台。 可视化工具 1. Animate.css 提供预定义的CSS动画…

vue实现轮播效果

vue实现轮播效果

使用Swiper插件实现轮播 安装Swiper及相关依赖: npm install swiper vue-awesome-swiper 组件代码示例: <template> <…

vue 实现滑动效果

vue 实现滑动效果

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

vue实现水印效果

vue实现水印效果

实现水印效果的几种方法 在Vue中实现水印效果可以通过多种方式,以下是几种常见的方法: 使用CSS背景图 通过CSS的background-image属性可以实现简单的水印效果。定义一个包含水印文本…

vue实现的效果

vue实现的效果

Vue.js 是一个流行的前端框架,用于构建用户界面和单页应用。以下是一些常见的 Vue 实现效果及其实现方式: 动态数据绑定 Vue 的核心特性之一是响应式数据绑定。通过将数据与 DOM 元素绑定…