transform-origin を Firefox (v.18 以降、テストされていない他のバージョン) で動作させる際に問題が発生しています。Webkit ブラウザは期待どおりに動作します。原点をグループの中心に設定しようとしていますが、これまで試したことはありません。
コードは次のとおりです。
#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 id="test">
<rect fill="#404040" x="7.062" y="3.625" width="1.875" height="8.75"/>
</g>
</svg>