Stack Overflow на русском Asked on February 22, 2021
Кто работал с DOM элементами думаю заметил как постепенно загружается страница.
С постепенной загрузкой появляются огромное количество проблем. К примеру:
Но если страницу прокрутить вниз потом перезагрузить то загружается страница прокрученная вниз…
… а потом уже прокручивается в начало.
И ещё много маленьких проблем которые не так легко будет описать.
Со всем этим я понял что просто создать панель, а через секунду спрятать его слишком мало для загрузки.
Собственно как мне реализовать загрузку правильно? Может вы знаете какие нибудь способы получше?
Например я так же попробовал способ с $(document).ready
который без jquery
пишется так:
document.addEventListener
("DOMContentLoaded",
function(event)
{
//Готово
}
);
Можете кидать статьи, код и всё что поможет решить проблему.
Вот вам ещё код панели чтобы на дизайн не мучились.
*
{
margin: 0px;
padding: 0px;
box-sizing: border-box;
user-select: none;
-webkit-user-drag: none;
outline: none;
font-family: monospace;
}
.title
{
font-size: 30px;
font-weight: bold;
color: rgb(200, 200, 200);
}
.block
{
width: fit-content;
height: fit-content;
padding: 5px;
display: flex;
background-color: rgb(25, 25, 25);
}
<loading class="block" style="
width: 100%;
height: 100%;
display: flex;
position: absolute;
z-index: 1;">
<div style="
margin: auto;
display: flexbox;">
<img src="https://i.stack.imgur.com/u3jnO.png" title="Лого" style="
width: 300px;
height: 300px;
margin: auto;">
<h2 class="title" style="
margin: 30px auto 0px auto;
text-align: center;">
Загрузка
</h2>
</div>
</loading>
document.addEventListener('DOMContentLoaded', () => {
// Задержка для наглядности
setTimeout(() => document.body.classList.add('page-loaded'), 1000);
});
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: monospace;
overflow: hidden;
}
body.page-loaded {
overflow: auto;
}
body.page-loaded .pre-loader {
transform: translateY(-100%);
visibility: hidden;
transition: visibility 0s 1s, transform 1s;
}
.pre-loader {
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index: 10;
background-color: rgb(25, 25, 25);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
transform: translateY(0);
visibility: visible;
}
.pre-loader img {
max-width: 25%;
}
.pre-loader .title {
margin-top: 20px;
font-size: 30px;
font-weight: bold;
color: rgb(200, 200, 200);
}
<div class="pre-loader">
<img src="https://i.stack.imgur.com/u3jnO.png" alt="">
<h2 class="title">Загрузка</h2>
</div>
<div class="content">
<h1>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum ipsam vitae eius aperiam, quos nobis dolorem cupiditate, magnam quis voluptatibus consequuntur, facilis asperiores rem! Ut, placeat officiis at quas nisi.</h1>
<h1>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum ipsam vitae eius aperiam, quos nobis dolorem cupiditate, magnam quis voluptatibus consequuntur, facilis asperiores rem! Ut, placeat officiis at quas nisi.</h1>
<h1>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum ipsam vitae eius aperiam, quos nobis dolorem cupiditate, magnam quis voluptatibus consequuntur, facilis asperiores rem! Ut, placeat officiis at quas nisi.</h1>
</div>
Correct answer by MoloF on February 22, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP