当前位置:首页 > CSS

css动画制作

2026-03-31 19:53:53CSS

CSS动画基础语法

CSS动画通过@keyframes规则定义动画序列,结合animation属性实现。基本结构分为两部分:关键帧定义和元素动画绑定。

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

/* 元素应用动画 */
.element {
  animation: slideIn 1s ease-out forwards;
}

关键属性详解

animation复合属性 包含以下子属性(空格分隔):

css动画制作

  • animation-name: 指定@keyframes名称
  • animation-duration: 动画持续时间(如2s
  • animation-timing-function: 速度曲线(ease/linear/cubic-bezier()
  • animation-delay: 延迟启动时间
  • animation-iteration-count: 重复次数(infinite表示无限循环)
  • animation-direction: 播放方向(normal/reverse/alternate
  • animation-fill-mode: 结束状态保持(forwards保留最后一帧)

关键帧控制

关键帧支持百分比定义多阶段动画:

@keyframes pulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.2); }
  100% { transform: scale(1); }
}

性能优化技巧

  • 优先使用transformopacity属性(GPU加速)
  • 避免频繁触发重排的属性如width/height
  • 使用will-change: transform预声明变化
  • 减少动画元素数量(尤其移动端)

实用动画示例

悬停放大效果

css动画制作

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

无限旋转动画

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

浏览器兼容方案

通过前缀确保兼容性:

@-webkit-keyframes example { /* Safari/Chrome */ }
@-moz-keyframes example { /* Firefox */ }
.element {
  -webkit-animation: example 1s;
  -moz-animation: example 1s;
}

标签: 动画制作css
分享给朋友:

相关文章

css 制作导航

css 制作导航

基础导航栏制作 使用HTML和CSS创建一个水平导航栏。HTML结构通常使用<ul>和<li>标签,CSS负责样式布局。 <nav> <ul class…

css制作箭头

css制作箭头

使用 CSS 边框制作箭头 通过调整元素的 border 属性,利用透明边框和实色边框的组合生成箭头。例如,创建一个向右的箭头: .arrow-right { width: 0; hei…

css制作春季踏青

css制作春季踏青

使用CSS制作春季踏青主题效果 背景设计 通过渐变背景模拟春日天空,使用柔和的色调如浅蓝、淡绿和粉色。可以添加云朵或小鸟的剪影作为装饰元素。 body { background: linear-…

css立体相册制作

css立体相册制作

制作CSS立体相册 使用CSS3的3D变换和过渡效果可以创建一个立体相册。以下是一个基本的实现方法。 HTML结构 <div class="photo-album"> <di…

css帧动画制作视频

css帧动画制作视频

CSS帧动画制作方法 CSS帧动画通过@keyframes规则和animation属性实现,以下是具体步骤: 定义关键帧 使用@keyframes定义动画序列,从0%到100%描述每一帧的状态:…

div css制作导航

div css制作导航

导航栏的基本结构 使用HTML的<nav>标签包裹导航链接,内部通常采用无序列表<ul>和列表项<li>结构。示例代码如下: <nav> <…