SVGアニメーション – javascriptを使う(7) – transform の rotate 要素の動的変化
アニメーションとして取り扱えるSVGのプロパティの transform の rotate を試してみます。
transformのプロパティは、下記のパラメータを指定することができます。
[js]
rotate 回転の中心 X Y 座標回転
scale 縦の倍率 拡大縮小
skewX 横方向の傾斜
skewY 縦方向の傾斜
translate 移動
matrix 行列を利用して変形
[/js]
ここでは、rotateの値を動的に変更する例を試してみます。
下記のサンプルを用意しました。
[js]
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>テストHTML</title>
<style>
#recttest {
stroke: #000;
stroke-width: 2;
}
</style>
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg"
width = "500"
height = "250"
viewBox = "0 0 500 250"
>
<rect
id = "recttest"
x = "0"
y = "0"
width = "20"
height = "20"
fill = "#999"
/>
</svg>
<script>
let inter_value = 0;
let millisecond = 10;
let dom_rect = document.querySelector("#recttest");
setInterval(() => {
inter_value += 1;
dom_rect.setAttribute(‘transform’, ‘translate(150, 125) rotate(‘ + inter_value + ‘)’);
if (inter_value > 360) {
inter_value = 0;
}
}, millisecond)
</script>
</body>
</html>
[/js]
画面にアクセスすると、SVGのrect要素が出力されます。
javascriptによる transform 要素の rotate の動的変更で、SVG画像が回転することが確認できます。