У меня есть код JS, выполнение которого занимает некоторое время, поэтому я хотел показать загрузчик, пока код не будет выполнен. То, что я сделал до сих пор, похоже на
$(".loader-block").addClass("show");
// simulate a 5 second delay
setTimeout(() => { $(".loader-block").removeClass("show"); }, 5000);
.loader-block {
width: 417px;
height: 100%;
background: #eee;
position: absolute;
display: none;
top: 0;
left: 0;
z-index: 9;
}
.loader-block.show {
display: block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="loader-block">
<img src="/img/new-loader.gif" alt="Goodness never stops to wait for you">
</div>
JS КОД
$(".loader-block").addClass("show");
......
.... Some JS Code
......
$(".loader-block").removeClass("show");
HTML
<div class="loader-block">
<img src="/img/new-loader.gif">
</div>
CSS
.loader-block {
width: 417px;
height: 100%;
background: #eee;
position: absolute;
display: none;
top: 0;
left: 0;
z-index: 9;
}
.loader-block.show {
display: block;
}
Я подтвердил, что класс применен к элементу и удаляется после выполнения, но display:block
css (который находится в классе show
) не отражается, а класс show
применяется. Короче говоря, я чувствую, что это связано с перерисовкой пользовательского интерфейса. Мы будем очень благодарны за любые предложения.
Я даже проверил применение display:block
css непосредственно к элементу, я вижу, что css применяется, но результат не отображается.