Если я создаю функцию с помощью jQuery, которая добавляет пустой div, выполняет некоторую анимацию внутри пустого пространства, созданного div, а затем удаляет div, браузер никогда не освобождает место для пустого div (высота и ширина устанавливаются).
Если я не удалю пустой div в своей функции, браузер создаст необходимое пространство, и все будет работать правильно. Однако мне действительно нужно, чтобы пустое пространство, созданное div, было удалено после завершения анимации.
Есть ли способ поставить в очередь удаление div, чтобы браузер показывал желаемое поведение?
Вы уверены, что не удаляете div до завершения анимации? Как вы проверяете завершение анимации?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Разве это не работает, если использовать setTimeout? -)
Выполнив поиск в Google по jQuery и setTimeout, я нашел пример, который отправил меня по другому пути. Я думаю, проблема возникает из-за того, что манипуляции с div находятся в отдельном селекторе от реальной анимации. Это приводит к созданию и удалению div, даже если анимация все еще выполняется. Добавив в div простой оператор анимации, который откладывает удаление до завершения основной анимации, я могу добиться желаемого эффекта.
Проблема в том, что DOM не обновляется, пока ваша функция не завершится. Таким образом, использование setTimeout приведет к обновлению dom, и через 100 мс остальная часть вашей функции может продолжиться. Если вы не хотите, чтобы новый div был виден, я бы установил абсолютное положение, а верхний - примерно -5000. У него будут размеры и т. д., Его просто не будет видно. Вы также можете установить видимость (в css) на скрытую, если вы беспокоитесь, что она появится на экране.
Некоторые эффекты jQuery имеют обратные вызовы, которые запускаются после эффекта, например:
$('#someDiv').slideDown(100, function() {
$(this).remove();
});
Не могли бы вы предоставить код jQuery, который у вас уже есть?