SVGアニメーション – CSS要素を使う(2) – transitionsプロパティの使用

javascript

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>

サーバ上のHTMLはこちら(test1.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;

で指定しています。

表示例(多角形上にマウスカーソルを乗せた場合)

本来は線分にマウスカーソルを乗せる方法ではなく、カーソルを乗せる領域を工夫してカーソルで選択しやすくします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です