PC, Androidでは動くのに、iOS(iPhoneのSafari, Chromeなど)でsvgのストロークアニメーションが動かないケースに出くわした。
.path-stroke {
stroke: #FFF000;
stroke-width: 2px;
animation: svg-stroke 5s ease-in;
}
@keyframes svg-stroke {
0% {
stroke-dasharray: 2000;
stroke-dashoffset: 2000;
}
100%{
stroke-dashoffset: 0;
}
}
原因としては、keyframes内のstroke-dasharrayプロパティが開始位置にしかいないことだった。どうやら変化しないプロパティがkeyframes内にあると不具合を起こすっぽい。
以下のように変更したら動作した
.path-stroke {
stroke: #FFF000;
stroke-width: 2px;
stroke-dasharray: 2000; /* 変化しないプロパティはこちらに移動 */
animation: svg-stroke 5s ease-in;
}
@keyframes svg-stroke {
0% {
/*stroke-dasharray: 2000;*/
stroke-dashoffset: 2000;
}
100%{
stroke-dashoffset: 0;
}
}
よ!
著者について