答案:通过CSS的@keyframes定义动画关键帧并用animation属性应用到元素,可实现如滑入淡入等效果,结合animation-play-state还可控制播放状态。
在HTML和CSS中实现动画效果,主要依靠CSS的animation
属性和@keyframes
规则。通过定义关键帧来控制元素在不同时间点的样式,从而实现平滑的动画效果。下面详细介绍实现步骤。
1. 创建关键帧 @keyframes
使用@keyframes
定义动画的各个阶段。关键帧中可以设置0%到100%的时间节点,描述元素在每个时间点的样式状态。
示例:
@keyframes slideIn { 0% { transform: translateX(-100px); opacity: 0; } 100% { transform: translateX(0); opacity: 1; } }
这个关键帧定义了一个从左侧滑入并淡入的动画效果。
2. 将动画应用到元素
在需要动画的HTML元素上,通过CSS的animation
属性调用已定义的关键帧。
立即学习“前端免费学习笔记(深入)”;
示例:
.animated-box { width: 100px; height: 100px; background-color: blue; animation: slideIn 2s ease-in-out 0.5s forwards; }
animation 属性可分解为:
- slideIn:动画名称,对应@keyframes定义的名称
- 2s:动画持续时间
- ease-in-out:动画速度曲线
- 0.5s:动画延迟开始时间
- forwards:动画结束后保持最后一帧的样式
3. 在HTML中绑定元素
将CSS类应用到HTML标签上,即可看到动画效果。
<div class="animated-box"></div>
页面加载时,该div会按照定义的动画规则执行滑入和淡入效果。
4. 可选:控制动画播放状态
可以通过animation-play-state
控制动画暂停或继续。
.animated-box:hover { animation-play-state: paused; }
当鼠标悬停在元素上时,动画会暂停。
基本上就这些。只要定义好关键帧,再绑定到具体元素,就能实现丰富的CSS动画效果。不复杂但容易忽略细节,比如动画名称拼写一致、浏览器兼容性等。