首頁  >  文章  >  web前端  >  為什麼「transform-origin」在 Firefox 中的 SVG 群組上不起作用?

為什麼「transform-origin」在 Firefox 中的 SVG 群組上不起作用?

Barbara Streisand
Barbara Streisand原創
2024-11-22 05:26:11374瀏覽

Why Doesn't `transform-origin` Work on SVG Groups in Firefox?

Firefox 中SVG 群組上的transform-origin 設定不起作用

無法在Firefox 設定不起作用

無法在Firefox 中讓transform-origin 生效(v.18 ,未測試其他版本) 是常見問題。 WebKit 瀏覽器按預期運作。您嘗試將 origin 設定為群組的中心,但到目前為止所有嘗試都失敗了。
#test {
  -webkit-transform-origin: 50% 50%;
  transform-origin: center center;
  -webkit-animation: prop 2s infinite;
  animation: prop 2s infinite;
}

@-webkit-keyframes prop {
  0% {
    -webkit-transform: scale(1, 1);
  }
  20% {
    -webkit-transform: scale(1, .8);
  }
  40% {
    -webkit-transform: scale(1, .6);
  }
  50% {
    -webkit-transform: scale(1, .4);
  }
  60% {
    -webkit-transform: scale(1, .2);
  }
  70% {
    -webkit-transform: scale(1, .4);
  }
  80% {
    -webkit-transform: scale(1, .6);
  }
  90% {
    -webkit-transform: scale(1, .8);
  }
  100% {
    -webkit-transform: scale(1, 1);
  }
}

@keyframes prop {
  0% {
    transform: matrix(1, 0, 0, 1, 0, 0);
  }
  20% {
    transform: matrix(1, 0, 0, .8, 0, 0);
  }
  40% {
    transform: matrix(1, 0, 0, .6, 0, 0);
  }
  50% {
    transform: matrix(1, 0, 0, .4, 0, 0);
  }
  60% {
    transform: matrix(1, 0, 0, .2, 0, 0);
  }
  70% {
    transform: matrix(1, 0, 0, .4, 0, 0);
  }
  80% {
    transform: matrix(1, 0, 0, .6, 0, 0);
  }
  90% {
    transform: matrix(1, 0, 0, .8, 0, 0);
  }
  100% {
    transform: matrix(1, 0, 0, 1, 0, 0);
  }
}
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 16 16">
    <g>
以下為相關代碼:

  1. 此問題是由於 SVG 形狀的繪製方式。為了讓 Firefox 正確應用 transform-origin,原始 SVG 形狀的中心必須在座標 0, 0。
繪製原始 SVG 形狀,使其中心在座標 0, 0:
<svg x="0px" y="0px" width="400px" height="400px" viewBox="0 0 400 400">
    <rect>
圍繞原始形狀添加一個群組並將其平移到所需的位置:
<svg x="0px" y="0px" width="400px" height="400px" viewBox="0 0 400 400">
    <g transform="translate(150, 100)">
        <rect>

現在,您可以在該組上應用CSS 過渡,這應該可以在Firefox 中正常工作。

以上是為什麼「transform-origin」在 Firefox 中的 SVG 群組上不起作用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn