Добрый вечер, Имеется код, который выводит диалоговое окно.
function showOptionWindow(parent, data) {
let existsOptionWindow = document.getElementById("optionWindow");
if (existsOptionWindow)) {
removeWindow(existsOptionWindow);
}
// обработка data
let optionWindow = createWindow();
showWindow(parent, optionWindow);
}
В коде вызывается функция showOptionWindow, которая обрабатывает данные и создает окно. При этом, если такое же окно уже есть, то скрывает его.
В функциях показа и скрытия отображение происходит за счет увеличения либо уменьшения прозрачности через setInterval, думаю принцип понятен.
function showWindow(parent, elem) {
let opacity = 0;
let interval = setInterval(function () {
if (opacity >= 1){
clearInterval(interval);
}
else {
opacity = opacity + 0.05;
}
parent.appendChild(elem);
elem.style.opacity = opacity;
},30);
return elem;
}
function showWindow(parent, elem) {
let opacity = 1;
let interval = setInterval(function () {
if (opacity <= 0){
clearInterval(interval);
elem.remove();
}
else {
opacity = opacity - 0.05;
}
elem.style.opacity = opacity;
},30);
return elem;
}
Проблема в том, что если окно показано, то оно его закрывает и в то же время рисует другое. Нужно, чтобы showWindow начала работать после того, как произошла removeWindow, каким образом это можно сделать ?