Я хочу анимировать (для упрощения, предположим, Scale +) текстовую маску в SVG (это должна быть маска). Я использую GSAP для достижения этой цели.
Моя анимация будет хорошо воспроизводиться с Edge и Chrome, но не с Firefox.
var tl = new gsap.timeline();
tl.add(
gsap.to("#masktext", 3, {scale: 3, "text-anchor": "middle", transformOrigin: "50% 50%"}),
"0"
);
.svg-container {
font-size: 13rem;
font-weight:bold;
width: 100%;
height: 100%;
max-height:700px;
position: absolute;
top: 0;
}
#mysvg {
width: 100%;
height: 100%;
overflow: visible;
display: block;
}
#masktext {
text-anchor: middle;
transform-origin: center center;
}
#maskrect {
fill: white;
}
#myrect {
fill: white;
-webkit-mask: url(#mask);
mask: url(#mask);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.2.4/gsap.min.js"></script>
<div class="svg-container">
<svg id="mysvg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1920 700" width="1920px" height="700px" preserveAspectRatio="xMidYMid meet">
<defs>
<mask id="mask" x="0" y="0" width="1920" height="700" maskUnits="userSpaceOnUse" maskContentUnits="userSpaceOnUse" preserveAspectRatio="xMidYMid slice">
<rect id="maskrect" x="0" y="0" width="1920" height="700"/>
<text id="masktext" x="50%" y="50%">Creative</text>
</mask>
</defs>
<rect id="myrect" x="0" y="0" width="1920" height="700" style="fill:green;"/>
</svg>
</div>
https://jsfiddle.net/yumigo/qcrawe2g/
Я думаю, что при Firefox масштабированное положение текст неправильный / выходит за рамки и разрушает анимацию. Безуспешно пытался найти источник трансформации и различные начальные позиции текста.