SVGアニメーション – CSS要素を使う(2) – transitionsプロパティの使用
前回の投稿ではCSS要素の「animation」プロパティを使ってSVG画像をアニメーションしました。
今回は別なプロパティの「transitions」プロパティを使ってみます。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>テストHTML</title> <style> .anim1 { stroke: #000000; stroke-dasharray: 2000; stroke-dashoffset: 0; stroke-width: 10; transition: fill, 0s, 2s; } .anim1:hover { stroke: #ff00cc; stroke-dasharray: 500; stroke-width: 10; } </style> </head> <body> <svg width="500" height="300" viewBox="0 0 500 300"> <polygon class="anim1" points="10 15 25 120 50 180 75 95 98 250 105 140 130 175 135 210 150 135" stroke="#000000" stroke-width="1" fill="none" /> </svg> </body> </html>
画面にアクセスすると多角形が表示されます。
多角形(polygon)の線分にマウスカーソルを乗せると、下記のhover定義されたstyleにpolygonがアニメーション変化します。
.anim1:hover { stroke: #ff00cc; stroke-dasharray: 500; stroke-width: 10; }
また、アニメーション変化の時間指定は
.anim1 { stroke: #000000; stroke-dasharray: 2000; stroke-dashoffset: 0; stroke-width: 10; transition: fill, 0s, 2s; }
側にある
transition: fill, 0s, 2s;
で指定しています。
表示例(多角形上にマウスカーソルを乗せた場合)
本来は線分にマウスカーソルを乗せる方法ではなく、カーソルを乗せる領域を工夫してカーソルで選択しやすくします。