Как залить текст через fill плавно?
В этом коде текст заливается цветом резко, когда анимация доходит до 90%, как залить его вместе с анимацией?
Вот код самой анимации:
.text-copy {
fill: none;
animation-fill-mode: forwards;
animation-timing-function: linear;
animation-name:stroke-offset;
animation-duration: 8s;
animation-iteration-count: infinite;
stroke: #FDF590 ;
stroke-dasharray: 7% 28%;
stroke-width: 3px;
}
.text-copy:nth-child(1) {
stroke: #F3D881 ;
stroke-dashoffset: 7%; }
.text-copy:nth-child(2) {
stroke: #F3D881 ;
stroke-dashoffset: 14%; }
.text-copy:nth-child(3) {
stroke: #F3D881 ;
stroke-dashoffset: 21%; }
.text-copy:nth-child(4) {
stroke: #F3D881 ;
stroke-dashoffset: 28%; }
.text-copy:nth-child(5) {
stroke-dashoffset: 35%; }
@keyframes stroke-offset {
90% {
fill:#F3D881 ;
stroke-dashoffset: 35%;
stroke-dasharray: 87.5%; } }
Знаю что есть transition и прочее, как его применить?
Вам необходимо задать начальный цвет для fill, например transparent.
.text-copy {
fill: transparent;
animation-fill-mode: forwards;
animation-timing-function: linear;
animation-name:stroke-offset;
animation-duration: 8s;
animation-iteration-count: infinite;
stroke: #FDF590;
stroke-dasharray: 7% 28%;
stroke-width: 3px;
}
.text-copy:nth-child(1) {
stroke: #F3D881 ;
stroke-dashoffset: 7%; }
.text-copy:nth-child(2) {
stroke: #F3D881 ;
stroke-dashoffset: 14%; }
.text-copy:nth-child(3) {
stroke: #F3D881 ;
stroke-dashoffset: 21%; }
.text-copy:nth-child(4) {
stroke: #F3D881 ;
stroke-dashoffset: 28%; }
.text-copy:nth-child(5) {
stroke-dashoffset: 35%; }
@keyframes stroke-offset {
90% {
fill: #F3D881;
stroke-dashoffset: 35%;
stroke-dasharray: 87.5%;
}
}
<svg class=text-copy>
<rect width="100" height="100" />
</svg>
Сборка персонального компьютера от Artline: умный выбор для современных пользователей