このアニメーションはCSSでSVGの属性を操作して、アニメーションを実装しています。
まず、SVGのcircleを用意します。
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 110 110" class="demo" > <circle cx="55" cy="55" r="50" class="demo" /> </svg>CSSでSVGのの輪郭を設定して、数値をアニメーションにします。
svg.demo{ margin:20px; width: 200px; display:block; margin:40px; } circle.demo{ fill:none; stroke:#00F; stroke-width:5px; stroke-dasharray: 314; animation: demo_kururi ease 5s infinite; } @keyframes demo_kururi { from { stroke-dashoffset: 314; } to { stroke-dashoffset: 0; } }
輪郭の設定をしている属性は以下の通り。
stroke-width:5px;
輪郭の太さ
stroke-dasharray: 314;
輪郭を点線にした時の長さ
stroke-dashoffset: 314;
輪郭を点線にした時の間隔(余白部分)の長さ
つまり、輪郭専用のアニメをしているのではなくて、点線のスタイルの変更を応用している感じです。
さらに314の数字の部分にはその円の円周を入れます。
このサンプルではわかりやすく半径を50にしているので「直径 x 3.14」の数値を使っています。