它是一个「性能提示」而非开关:浏览器收到 will-change: transform 后会提前为该元素创建独立的 GPU 合成层,之后动画时不再临时建层(临时建层是掉帧的主要来源)。只在确定要动的时候设置,动画结束应移除。
滥用反而有害:给无关元素都加上,会导致每一层都常驻显存,内存暴涨、合成变慢。正确姿势是 hover/focus 时通过类名加上,离开时移除;或者只给确实会做 Transform/Opacity 动画的元素。
<style> .card { transition: transform .3s; } .card:hover { will-change: transform; transform: scale(1.06); } .card:not(:hover) { will-change: auto; } /* 离开即回收 */ </style> <div class="card" style="width:150px;height:90px;background:#4a9eff;border-radius:10px"></div>