在css中如何使用@keyframes定义动画

使用@keyframes定义动画需先命名并设置关键帧,如0%到100%或from/to,描述样式变化过程;再通过animation属性将动画绑定到元素,可设置持续时间、延迟、次数等,也可简写为animation复合属性,实现如滑入、淡入等效果,并注意添加-webkit-前缀以兼容旧版浏览器。

在CSS中使用@keyframes定义动画,主要是为了描述元素从一种样式状态过渡到另一种样式的过程。通过给动画命名并设置关键帧(如0%、50%、100%),可以精确控制动画每一阶段的样式表现。

定义@keyframes动画

使用@keyframes规则时,先为动画起一个名字,然后在花括号内设置各个关键帧的样式:

@keyframes slideIn { 0% { transform: translateX(-100%); opacity: 0; } 100% { transform: translateX(0); opacity: 1; } }

上面的例子定义了一个名为slideIn的动画:元素从左侧外移入,并由透明变为不透明。

将动画应用到元素

定义好动画后,需要使用animation属性或其子属性将其绑定到具体元素上:

.animated-box { width: 100px; height: 100px; background: blue; animation-name: slideIn; animation-duration: 2s; animation-timing-function: ease-out; animation-delay: 0.5s; animation-iteration-count: 1; animation-fill-mode: forwards; }

也可以简写为:

.animated-box { animation: slideIn 2s ease-out 0.5s 1 forwards; }

关键帧的其他写法

除了使用百分比,还可以用fromto表示起止点,适用于简单动画:

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

这种写法等同于0%和100%的关键帧,更简洁直观。

基本上就这些。只要定义了@keyframes并正确应用到元素,就能实现丰富的CSS动画效果。注意浏览器兼容性时可考虑添加-webkit-前缀,尤其在移动端或旧版浏览器中。