Показать картинку только после загрузки в браузер
Есть фоновый <div class="b"> с классом .b у него пседоклассом ::before
Код:
.b::before { |
Ops,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
body, html{
height: 100%;
}
div.a {
opacity: 0;
}
div.a.b{
opacity: 1;
transition: 3s;
}
div.b::before {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
content: "";
background-image: var(--img, none);
background-repeat: no-repeat;
background-size: cover;
background-position: center;
}
</style>
</head>
<body>
<div class="a"></div>
<script>
const img = new Image();
img.src = 'https://wallpaperscave.ru/images/original/18/06-22/earth-field-60178.jpg';
img.decode()
.then(() => {
document.querySelector('.a').style.setProperty('--img', `url(${img.src})`);
document.querySelector('.a').classList.add('b')
})
</script>
</body>
</html>
|
Спасибо! То что надо. Ещё немного переделаю под себя. :dance:
|
А как сделать что бы одна картинка, не грузилась в браузер несколько раз?
![]() |
картинка загружается единожды (если адрес не меняется динамически)
далее картика берется из кеша браузера у вас стоит Disable cache галочка уберите, и увидите, что берется из кеша, не дергая сервер |
Ох пардон, мне что то самому голову заморочили. Премного благодарен.
|
| Часовой пояс GMT +3, время: 01:14. |