Javascript:AppendChild медленно
var wrapper = document.getElementById("wrapper");
var div = document.createElement("div");
wrapper.appendChild(div);
div.className += " red"; // this should happened after appendChild()
CSS:
div{color:blue; transition: all 2s;}
div.red{color:red;}
Что я хочу:
Присвоение "красного" class
к div
, должен сделать хороший цветная анимация. Я хочу, чтобы append
a div
, а затем назначить class
, чтобы он анимировал.
Что я получил вместо:
Див уже добавляется красный, с без анимации не происходит.
Есть ли обходной путь?
javascript не многопоточен. Ничего не случилось с DOM, а js-код выполнен. –
Какое название имеет отношение к вашему вопросу? – Amit
Я думаю, что это сработает, если вы измените его на 'setTimeout (function() {div.className + =" red "}, 0);'. Это дает браузеру возможность сначала отобразить синий div, а затем он, вероятно, оживит переход. В настоящее время весь скрипт запускается до отображения страницы, поэтому с точки зрения рендеринга имя класса начинается с самого начала. Может отличаться для каждого браузера. В Edge это может работать корректно (непроверено). – GolezTrol