Как получить значение поворота преобразования стиля в javascript? - PullRequest
0 голосов
/ 23 января 2020

Мне нужно преобразовать значение поворота ...? alert ("rotate (30deg)") ...

<div id="demo" style="transform: rotate(30deg);width:100px;height:50px;background-color:red;">
var myElement = document.getElementById("demo");
var rotate = getElementById("demo").style.transformRotate.value;
alert(rotate);

Ответы [ 2 ]

1 голос
/ 23 января 2020

Вы можете проанализировать стиль transform, используя match, чтобы получить значение поворота:

var myElement = document.getElementById("demo");
var rotate = myElement.style.transform.match(/rotate\((.+)\)/);
alert(rotate && rotate[1]);  // avoid error if match returns null
<div id="demo" style="transform: rotate(30deg);width:100px;height:50px;background-color:red;">

Чтобы отделить число (30) от единицы (град), вы можете сделать следующее:

var myElement = document.getElementById("demo");
var rotate = myElement.style.transform.match(/rotate\((\d+)(.+)\)/);
if (rotate) {
  var [num, unit] = rotate.slice(1);  // slice is needed since first element contains entire match
  console.log('num:', num, 'unit:', unit);
}
<div id="demo" style="transform: rotate(30deg);width:100px;height:50px;background-color:red;">
1 голос
/ 23 января 2020

Вам нужно хранить transform, а не transformRotate:

var myElement = document.getElementById("demo");
var transformation = myElement.style.transform;
alert(transformation);
<div id="demo" style="transform: rotate(30deg);width:100px;height:50px;background-color:red;">
...