当前位置:首页 > CSS

css中制作动画

2026-03-12 05:06:53CSS

CSS动画基础

CSS动画通过@keyframes规则和animation属性实现。定义关键帧后,将动画绑定到元素上。

@keyframes slideIn {
  from { transform: translateX(-100%); }
  to { transform: translateX(0); }
}

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

关键属性说明

animation是以下子属性的简写:

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

多关键帧定义

可以在@keyframes中定义多个中间状态:

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

性能优化建议

优先使用transformopacity属性制作动画,这些属性不会触发重排:

  • 使用will-change: transform提前告知浏览器优化
  • 避免动画期间改变width/height等几何属性
  • 硬件加速:使用transform: translateZ(0)

动画事件监听

通过JavaScript监听动画事件:

element.addEventListener('animationstart', () => {});
element.addEventListener('animationend', () => {});
element.addEventListener('animationiteration', () => {});

实用示例

悬停放大效果:

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

无限旋转动画:

css中制作动画

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

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

相关文章

css制作箭头

css制作箭头

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

css制作详情页

css制作详情页

CSS制作详情页的关键步骤 布局规划 确定详情页的整体布局结构,通常包括头部、商品展示区、参数区、评价区等模块。使用Flexbox或Grid布局实现响应式设计,确保在不同设备上正常显示。 样式设计…

css制作开关

css制作开关

使用纯CSS制作开关 通过CSS的伪元素和input[type="checkbox"]可以创建自定义开关样式。关键点在于隐藏原生复选框,用CSS重新设计外观。 <label class="sw…

css制作滑动切换

css制作滑动切换

使用CSS实现滑动切换效果 方法一:使用CSS Transition和Transform 通过transition和transform属性实现平滑的滑动动画效果。 .slider-container…

css 制作购物网站

css 制作购物网站

布局设计 使用CSS Grid或Flexbox创建响应式布局。Grid适合整体页面结构,Flexbox适合局部组件排列。定义网格模板区域,如头部、导航、商品展示区、侧边栏和页脚。 .containe…

网页制作 css

网页制作 css

CSS 基础语法 CSS(层叠样式表)用于控制网页的样式和布局。基本语法由选择器和声明块组成。选择器指向需要样式化的HTML元素,声明块包含一个或多个用分号分隔的声明,每个声明由属性和值组成。 选择…