ItsEvilTime
@ItsEvilTime
Сайленсер не дает мне покоя

Почему не анимируется добавление класса?

Мой код
HTML:
<div id="block"></div>
CSS:
#block {
    width: 50px;
    height: 50px;
    background: green;
    transition: all 5s;
    margin-bottom: 2px;
}
.move {
    margin-left: 300px;
}

JS:
var block = document.getElementById("block");
block.classList.add("move");

Исходник на JSFiddle: jsfiddle.net/6bfgopvx

При запуске на JSFiddle блок двигается плавно слева направо в течении 5 секунд.
При локальном запуске на Firefox поведение аналогичное.
При локальном запуске на Chrome и Opera блок сразу встает в свое конечное положение без анимации.

Вопрос: как сделать плавную анимацию с добавлением класса, как на JSFiddle, чтобы работала везде?

P.S. автопрефиксер включен
  • Вопрос задан
  • 290 просмотров
Решения вопроса 2
mudrenokanton
@mudrenokanton
frontend dev
<div class="block"></div>

.block {
    width: 50px;
    height: 50px;
    background: green;
    transition: all 5s;
    margin-bottom: 2px;
    margin-left: 0px;
}
.move {
    margin-left: 300px;
}


var block = document.getElementsByClassName("block")[0];
block.classList.add("move");


classList, как и код без префиксов, не везде работает
Ответ написан
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
Все работает --> тык, поди присваиваете класс до загрузки страницы, да что еще более вероятно - перед стилями.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
nextel
@nextel
ненавижу javascript
потому что, вот почему:
-webkit-transition: all 5s;
     -moz-transition: all 5s;
     -o-transition:  all 5s;
     transition:  all 5s;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы