Firefox 中 SVG 组上的 transform-origin 设置不起作用
无法在 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>
解决方案
该问题是由于 SVG 形状的绘制方式。为了让 Firefox 正确应用 transform-origin,原始 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中文网其他相关文章!