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; } }
よ!
著者について