当前位置:首页 > 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;
}

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

相关文章

jquery 动画

jquery 动画

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

vue实现旋转效果

vue实现旋转效果

使用CSS动画实现旋转 在Vue中可以通过CSS的@keyframes或transform属性实现旋转效果。在组件的<style>部分定义旋转动画: .rotate { animat…

vue实现筛选效果

vue实现筛选效果

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

vue实现弹窗效果

vue实现弹窗效果

使用 Vue 实现弹窗效果 组件化弹窗实现 创建独立的弹窗组件 Modal.vue,通过 v-if 或 v-show 控制显示状态: <template> <div class…

vue实现弹幕效果

vue实现弹幕效果

实现弹幕效果的基本思路 在Vue中实现弹幕效果,通常需要结合CSS动画和动态数据渲染。弹幕的核心是让文字从右向左平滑移动,同时支持多行显示和碰撞检测。 使用CSS动画实现移动效果 通过CSS的@ke…

vue实现多选效果

vue实现多选效果

Vue 实现多选效果的方法 使用 v-model 绑定数组 在 Vue 中,可以通过 v-model 绑定一个数组来实现多选效果。适用于复选框组(checkbox)或下拉多选(select multi…