JS, изменить свойство стилей div блока

Доброго времени суток.

Есть несколько элементов со своими стилями, выглядит следующим образом.

<div style="position: absolute; transition: all 1s linear 0s; transform: rotate(157.5deg) translate(15em) rotate(-158deg);"> ... </div>

<div style="position: absolute; transition: all 1s linear 0s; transform: rotate(134.5deg) translate(15em) rotate(-134deg);"> ... </div>

У всех div элементов разное свойство transform (в целом все div элементы образуют круг, из больше двух).

Задача следующая, необходимо изначальное свойство transform rotate установить на 0, а после через JS "дойти" до нужного значения, это нужно, чтобы элементы появлялись не сразу на своем месте, а выезжали из определенного места. Как можно через JS изменить rotate? Возможно с добавлением ID к каждому блоку.

Важное добавление, я могу изменить стиль через document.getElementById('ID').style.transform = 'rotate(337.5deg) translate(15em) rotate(-337deg)' Но в таком случаи анимацию не будет происходить.


Ответы (1 шт):

Автор решения: Александр Сычёв

Задача следующая, необходимо изначальное свойство transform rotate установить на 0, а после через JS "дойти" до нужного значения

А используя классы нельзя? при условии если все значения знаете за ранее. Например так

let arr = ['a', 'aa', 'aaa']
btn.addEventListener('click', function() {
  document.querySelectorAll('.b').forEach((el, i) => {
    el.classList.add(arr[i]);
  })
})
.b {
  position: absolute;
  transition: all 1s linear 1s;
  left: 500px;
  border: 2px solid red;
  transform: rotate(0deg) translate(0em) rotate(0deg);
}

.a {
  transform: rotate(157.5deg) translate(15em) rotate(-158deg);
  transition: all 1s linear 1s;
}

.aa {
  transform: rotate(134.5deg) translate(15em) rotate(-134deg);
  transition: all 1s linear 1.5s;
}

.aaa {
  transform: rotate(111.5deg) translate(15em) rotate(-110deg);
  transition: all 1s linear 2s;
}
<div class="b" style=""> 1111111111111</div>
<div class="b" style="">1111111111111</div>
<div class="b" style=""> 1111111111111</div>

<button id="btn">Вжух</button>

→ Ссылка