SVGアニメーション – javascriptを使う(7) – transform の rotate 要素の動的変化
アニメーションとして取り扱えるSVGのプロパティの transform の rotate を試してみます。
transformのプロパティは、下記のパラメータを指定することができます。
rotate 回転の中心 X Y 座標回転 scale 縦の倍率 拡大縮小 skewX 横方向の傾斜 skewY 縦方向の傾斜 translate 移動 matrix 行列を利用して変形
ここでは、rotateの値を動的に変更する例を試してみます。
下記のサンプルを用意しました。
<!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>
画面にアクセスすると、SVGのrect要素が出力されます。
javascriptによる transform 要素の rotate の動的変更で、SVG画像が回転することが確認できます。