
Safari浏览器CSS旋转动画卡顿的解决方案
在Safari浏览器中,使用CSS transform: rotate 属性创建旋转动画时,可能会出现卡顿现象。这是由于Safari浏览器未启用硬件加速导致的。 解决方法是强制启用硬件加速,利用translate3D()函数来实现。
translate3D() 函数会强制浏览器使用GPU渲染动画,从而显著提升性能,解决动画卡顿问题。
修改动画定义,添加translate3D(0, 0, 0):
立即学习“前端免费学习笔记(深入)”;
@keyframes spin {
from {
transform: translate3D(0, 0, 0) rotate(0deg);
}
to {
transform: translate3D(0, 0, 0) rotate(360deg);
}
}
通过添加 translate3D(0, 0, 0),即使元素只在二维平面旋转,也能触发Safari浏览器的硬件加速,从而消除卡顿,获得流畅的旋转动画效果。 即使视觉上没有Z轴位移,这个微小的3D变换也能有效解决问题。










