海岸製作所

Blog

2016
10
16

SVGをCSS3で描画アニメーション


以前も同じ線が描画されるアニメーションを使ってみた事が有った。
lazylinepointerを用いたものでjsに直接svgの座標を書くため、レスポンシブに対応しづらかった。

今回は、レスポンシブに対応しsvgが拡縮される手法を紹介したいと思う。

うずまきを例に…
まずは、この画像をイラレでsvgで保存する。
dc
保存したsvgをテキストエディタで開くとこんな感じになる。

HTML側にSVGを貼付ける


必要なのは<svg>から</svg>の中身だけなので、余分な所は取り除く
余計な所を取るとこんな感じになる。これをHTMLの任意部分に貼付けるだけ。
これで、HTML側の準備はOK

CSS側のコード


svgに割り当てたスタイルはサイズの制御なのでお好みで。
今回はpathが重要で、class.st0が割り振られているので線の色や幅を設定。
animationで動作時間を設定。
keyframesで「stroke-dashoffset」関数で線の位置を設定する。5000から断続的に0まで動かす事で線が描画させるように見える。
今回は線が一筆書きなのでシンプルなのだが、線が複数有るときは「path」が複数有るのでkeyframesもクラスごとに複数割り当てる。

サンプル


最後に実際に動作させたサンプルを置いておく。

Category カテゴリ一覧

Author このブログを書いてる人

ハヤシ ヒロキ

2009年からWeb製作屋やってます。
葉山育ち。
お酒とアクアリウムと鉄道が好きな30代。
どちらかと言えばデザインよりもコーダー寄り。
表現の幅を広げたくてインタラクティブなものやシステム的なものも取り入れるべく悪戦苦闘。
シンプルで動きなど触っておおっとなるWeb制作を目指しています。
お仕事もお待ちしております。

お問い合わせはこちら