SVGアニメーション – CSS要素を使う(2) – transitionsプロパティの使用
前回の投稿ではCSS要素の「animation」プロパティを使ってSVG画像をアニメーションしました。
今回は別なプロパティの「transitions」プロパティを使ってみます。
[js]
<!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>
[/js]
画面にアクセスすると多角形が表示されます。
多角形(polygon)の線分にマウスカーソルを乗せると、下記のhover定義されたstyleにpolygonがアニメーション変化します。
[js]
.anim1:hover {
stroke: #ff00cc;
stroke-dasharray: 500;
stroke-width: 10;
}
[/js]
また、アニメーション変化の時間指定は
[js]
.anim1 {
stroke: #000000;
stroke-dasharray: 2000;
stroke-dashoffset: 0;
stroke-width: 10;
transition: fill, 0s, 2s;
}
[/js]
側にある
[js]
transition: fill, 0s, 2s;
[/js]
で指定しています。
表示例(多角形上にマウスカーソルを乗せた場合)
本来は線分にマウスカーソルを乗せる方法ではなく、カーソルを乗せる領域を工夫してカーソルで選択しやすくします。