Я пытаюсь скрыть определенный div после выполнения некоторого кода x пару раз. Это, похоже, не работает.Скрыть div после x количество секунд
Сначала я попытался с помощью setTimeout
в цикле для-:
var startCap = 1;
var cap = 5;
for(cap; cap > startCap; cap--){
setTimeout(function(){
startTimeElement.innerHTML = "Starting in " + cap + ".";
}, 1000);
}
я ожидал, что выше, приведет к отображая линию, ожидая одну секунду, затем происходит с для цикла. Оказалось, что пропустить таймаут полностью. Я пробовал записывать его в журнал, который затем отображал 1
, четыре раза, несколько миллисекунд за другим.
Затем я попытался использовать SetInterval
, но это тоже не дало мне желаемого результата. Оба раза он устанавливал стиль div на none
прямо после входа в функцию, не принимая во внимание время.
var startCap = 1;
var cap = 5;
var interval = function(){
startTimeElement.innerHTML = "Starting in " + cap + ".";
cap--
if(cap < startCap){
clearInterval(capInterval);
}
};
var capInterval = setInterval(interval, 1000);
Как я могу подождать 5 секунд, измените DIVS innerHTML в каждой второй, и установите видимость DIV никто? Обратите внимание: я не хочу использовать JQuery или любой другой сторонний инструмент.
Дополнение: Я использую следующую строку, чтобы изменить отображение div.
var startScreenElement = document.getElementsByClassName('startScreen')[0];
startScreenElement.style.display = "none";
Эта линия находится в той же функции, что и тайм-аут/интервал, но непосредственно под ней.
Поскольку у вас нет кода в ваших примерах, что делает любые манипуляции CSS, это невозможно, чтобы сказать вам, почему ваши манипуляции CSS происходит в неподходящее время. –
Имеет смысл, я включу строку, которую я использую. – Matthijs
Где, собственно, строка 'startScreenElement.style.display = 'none';' появляется в вашем коде 'setInterval'? –