与“css动画”相关的TAG标签
animation-timing-function通过速度曲线控制CSS动画节奏,不改变总时长;支持ease、linear、ease-in/out、steps()及cubic-bezier()自定义,需符合[0,1]参数范围,且transition与animation共用该属性。
完全可行,且是最常用、最轻量的方式;只需通过引入CDN上的第三方CSS动画库(如Animate.css),并正确指定版本与.min.css后缀,再按对应版本的类名规范(如v4需同时加animate__animated和animate__bounce)使用即可。
优先选transform:scale()而非width/height动画,因其在合成层完成、不触发重排重绘,性能更优;缩放中心由transform-origin控制,默认居中,支持多值缩放与镜像;CSS动画需用forwards保持终态,JS推荐通过CSS自定义属性或class切换控制。
background-image不支持transition或animation平滑过渡,因非可动画化属性;可用opacity切换叠加层、background-position滚动、渐变色动画、伪元素分层等替代方案。
动画首选transform:translate()而非top/left,因前者不触发重排、性能更优;absolute定位需父容器设relative;fixed元素动画应避免top/left,改用transform;读取坐标时,transform动画用getBoundingClientRect(),t...
伪元素上直接写animation无效,因默认无content和渲染盒模型;需设content、可动画属性及display/position;content不可动画,须用JS切换类名实现文字变化。
animation-play-state属性通过running和paused值控制动画暂停与继续,可继承、支持transition,JS可动态修改style.animationPlayState,但仅影响已启动动画,单次动画结束后设running不重播,需重置animation才能重启。
移动端CSS动画最稳方案是用transform和opacity触发GPU加速,避免left/top等引发重排的属性;禁用:hover过渡;duration设为200–250ms;明确声明过渡属性而非all;will-change按需动态添加并及时清除。
使用transform和cubic-bezier缓动函数可实现平滑缩放动画,避免修改width等触发重排的属性,结合will-change启用硬件加速,并用transition防止hover抖动,提升性能与体验。
首帧闪烁的根本原因是初始状态未对齐:浏览器先按默认样式渲染首帧,待动画0%关键帧生效时发生跳变;必须在@keyframes中显式定义完整0%帧并配合animation-fill-mode:both才能解决。
