You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS设备中SVG图片CSS旋转动画失效问题求助

SVG旋转动画在iOS浏览器不生效的解决办法

iOS的Safari和Chrome(基于WebKit内核)对通过<img>标签引用的SVG应用CSS旋转动画存在兼容性问题——img作为替换元素,WebKit引擎无法正确触发其transform动画。以下是几种可行的修复方案:

方案1:内联SVG到HTML中

将SVG代码直接嵌入HTML,而非通过<img>引用,这样CSS动画可以直接作用于SVG元素,iOS浏览器能正常识别:

<svg class="img-sth" viewBox="0 0 你的SVG宽 你的SVG高">
  <!-- 此处放入你的SVG原始代码 -->
</svg>

CSS保持原代码不变即可。

方案2:触发硬件加速强制动画生效

给<img>元素添加硬件加速相关属性,强制WebKit引擎处理动画:

.img-sth {
  position: absolute;
  height: 80px;
  top: -3px;
  left: 16px;
  -webkit-animation:spin-faster 4s linear 0.01s infinite;
  -moz-animation:spin-faster 4s linear 0.01s infinite;
  animation:spin-faster 4s linear 0.01s infinite;
  /* 添加以下属性触发硬件加速 */
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  will-change: transform;
}

@-moz-keyframes spin-faster { 100% { -moz-transform: rotate(360deg); } }
@-webkit-keyframes spin-faster { 100% { -webkit-transform: rotate(360deg); } }
@keyframes spin-faster { 100% { transform: rotate(360deg); } }

方案3:用容器包裹img,给容器加动画

把<img>放在一个div容器里,对容器应用旋转动画,通过容器带动img旋转:

<div class="spin-container">
  <img class="img-sth" src="/img/image.svg">
</div>
.spin-container {
  position: absolute;
  top: -3px;
  left: 16px;
  -webkit-animation:spin-faster 4s linear 0.01s infinite;
  -moz-animation:spin-faster 4s linear 0.01s infinite;
  animation:spin-faster 4s linear 0.01s infinite;
}

.img-sth {
  height: 80px;
}

@-moz-keyframes spin-faster { 100% { -moz-transform: rotate(360deg); } }
@-webkit-keyframes spin-faster { 100% { -webkit-transform: rotate(360deg); } }
@keyframes spin-faster { 100% { transform: rotate(360deg); } }

内容的提问来源于stack exchange,提问作者Devmasta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 11:48:22