Как зарезервировать место в блоке HTML под скроллбар
На странице есть прелоадер. до того как страница загружена он появляется, при этом весь html ещё не загружен, по этому как только браузер загружает весь контент, в этот момент появляется скроллбар, в итоге выходит неприятный эффект дёргания блока, ибо прелоадер двигается влево на всю ширину скроллбара.
Можно ли как-то это исправить?
Jquery
$(window).on('load', function () {
$('.preloader').fadeOut( 300 );
setTimeout(function () {$('.preloader').remove()}, 300);
});
html
<div class="preloader">
<h1 class="title">Имя проджекта</h1>
<ul id="loader">
<li></li>
<li></li>
<li></li>
</ul>
</div>
css
.preloader {
position: fixed;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
background-color: #FE3B30;
top: 0;
left: 0;
z-index: 1000000000;
}
.preloader .title {
position: absolute;
top: 0;
left: 0;
font-size: 35px;
font-weight: 400;
margin: 50px;
display: block;
color: #fff;
}
#loader {
padding: 0;
width: 170px;
display: flex;
justify-content: space-around;
align-items: center;
height: 100px;
list-style: none;
}
@keyframes loadbars{
0%{
height: 50px;
margin-top: 125px;
}
50%{
height: 250px;
margin-top: 0;
}
100%{
height: 50px;
margin-top: 125px;
}
}
#loader li {
background-color: #fff;
width: 50px;
height: 50px;
float: right;
margin-right: 5px;
}
#loader li:first-child{
-webkit-animation:loadbars .6s cubic-bezier(.645,.045,.355,1) infinite 0s;
-moz-animation:loadbars .6s cubic-bezier(.645,.045,.355,1) infinite 0s;
-ms-animation:loadbars .6s cubic-bezier(.645,.045,.355,1) infinite 0s;
-o-animation:loadbars .6s cubic-bezier(.645,.045,.355,1) infinite 0s;
animation:loadbars .6s cubic-bezier(.645,.045,.355,1) infinite 0s
}
#loader li:nth-child(2){
-webkit-animation:loadbars .6s ease-in-out infinite -.2s;
-moz-animation:loadbars .6s ease-in-out infinite -.2s;
-ms-animation:loadbars .6s ease-in-out infinite -.2s;
-o-animation:loadbars .6s ease-in-out infinite -.2s;
animation:loadbars .6s ease-in-out infinite -.2s
}
#loader li:nth-child(3){
-webkit-animation:loadbars .6s ease-in-out infinite -.4s;
-moz-animation:loadbars .6s ease-in-out infinite -.4s;
-ms-animation:loadbars .6s ease-in-out infinite -.4s;
-o-animation:loadbars .6s ease-in-out infinite -.4s;
animation:loadbars .6s ease-in-out infinite -.4s
}
.loaded_hiding .preloader {
transition: 0.3s opacity;
opacity: 0;
}
.loaded .preloader {
display: none;
}