使用@keyframes定义动画关键帧,通过animation属性将动画绑定到元素,可实现如滑动变色、呼吸灯等视觉效果,掌握关键属性如duration、timing-function和iteration-count,无需javaScript即可创建流畅css3动画。

想让网页更生动?html5 搭配 css3 动画是实现动态效果最直接的方式。不需要 javascript,仅用 HTML 和 CSS 就能创建流畅的动画效果。下面带你一步步掌握核心技巧。
使用 @keyframes 定义动画关键帧
动画的核心是 @keyframes 规则,它定义了动画在不同时间点的样式状态。
比如你想让一个盒子从左移到右并变色:
@keyframes slideandColor { 0% { transform: translateX(0); background-color: blue; } 100% { transform: translateX(200px); background-color: red; } }
这个动画从起点移动 200px,并将背景色由蓝色渐变为红色。
立即学习“前端免费学习笔记(深入)”;
将动画应用到 HTML 元素
定义好动画后,在 CSS 中通过 animation 属性将其绑定到元素上。
对应的 HTML 结构:
<div class="box"></div>
CSS 样式设置动画参数:
.box { width: 50px; height: 50px; background-color: blue; animation: slideAndColor 2s ease-in-out 0.5s infinite alternate; }
这里 animation 的参数依次是:动画名、持续时间、缓动函数、延迟、重复次数、方向。infinite 表示无限循环,alternate 表示来回播放。
常用动画属性详解
你可以根据需要调整动画行为:
- animation-duration:动画持续时间,如 1s 或 800ms
- animation-timing-function:控制速度曲线,如 ease、linear、cubic-bezier()
- animation-delay:动画开始前的延迟
- animation-iteration-count:播放次数,可设具体数字或 infinite
- animation-direction:normal(正向)、reverse(反向)、alternate(交替)
- animation-fill-mode:决定动画外时间的样式,如 forwards 保持最终状态
实战:制作呼吸灯效果
模拟 LED 呼吸闪烁,常用于加载提示:
@keyframes breathe { 0% { opacity: 0.2; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.2; transform: scale(1); } } .blink { width: 30px; height: 30px; background: #f39c12; border-radius: 50%; animation: breathe 1.5s ease-in-out infinite; }
把这个样式加到页面中,就能看到一个柔和脉动的小圆点。
基本上就这些。掌握 keyframes 和 animation 属性,你就能在 html5 页面中自由创造各种视觉动效。不复杂但容易忽略细节,建议多调试 timing-function 和 transform 组合。基本上就这些。


