javascript

SVGアニメーション – javascriptを使う

SVGアニメーション – javascriptを使う

SVG要素をjavascriptを使ってアニメーションする方法を試します。

シンプルな line要素 を javascript制御で rotate属性を変化させて回転する例です。

[js]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>テストHTML</title>

<style>
.line {
stroke-width: 5;
stroke: #DEDEDE;
}
</style>

</head>
<body>

<svg xmlns="http://www.w3.org/2000/svg"
width = "500"
height = "250"
viewBox = "0 0 500 250"
style = "background-color:#fff"
>
<line
x1 = "0"
y1 = "0"
x2 = "80"
y2 = "80"
class = "line"
id = "linetest"
/>
</svg>

<script>

let rotate_value = 0;
let millisecond = 50;
let dom_line = document.querySelector("#linetest");

setInterval(() => {

rotate_value += 3;

dom_line.setAttribute(‘transform’, ‘translate(250, 125) rotate(‘ + rotate_value + ‘)’);

}, millisecond)

</script>

</body>
</html>
[/js]

サーバ上のHTMLはこちら(test1.html)

画面にアクセスすると長さが80ピクセルのline(直線)を、javascript の setIntervalメソッド を使い、
50ミリ秒間隔で、動的に rotate(回転) しています。

また、アニメーションとして取り扱えるSVGのプロパティは、次のようなものがあります。

[js]
fill : 要素の塗りつぶし色を指定
stroke : 要素の境界線の色を指定
stroke-width : 境界線の太さを指定
stroke-dasharray : 境界線の破線パターンを指定
fill-opacity : 要素の透明度を指定
transform : 要素の位置、回転、スケールなどの変換を指定
clip-path : 要素の表示範囲をクリップするためのパスを指定
filter : 要素に対して画像処理のフィルターを適用
text-anchor : テキスト要素の配置基準点を指定
font-family : テキストのフォントファミリーを指定
font-size : テキストのフォントサイズを指定
text-decoration : テキストの装飾(下線、取り消し線など)を指定
text-align : テキストの水平方向の配置を指定します
[/js]

プロパティごとのアニメーションの仕方はjavascriptの書き方が変わるので、
今後、別な投稿で触れる機会があるかと思います。

コメントを残す

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