Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.08.2020, 17:01
Аватар для Ops
Ops Ops вне форума
Аспирант
Отправить личное сообщение для Ops Посмотреть профиль Найти все сообщения от Ops
 
Регистрация: 03.03.2016
Сообщений: 33

Показать картинку только после загрузки в браузер
Есть фоновый <div class="b"> с классом .b у него пседоклассом ::before
Код:
.b::before {
    ...
    content: "";
    background-image: url("b.jpg");
    ...
}
прицеплена фоновая картинка, как мне так сделать на чистом JS чтобы она начинала показываться и к ней применялись анимированные стили (плавное появление, не стал приводить чтобы сократить пост), только после её полной загрузки в браузер, onload-ом не получается отловить. Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 29.08.2020, 18:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,080

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>
Ответить с цитированием
  #3 (permalink)  
Старый 30.08.2020, 01:12
Аватар для Ops
Ops Ops вне форума
Аспирант
Отправить личное сообщение для Ops Посмотреть профиль Найти все сообщения от Ops
 
Регистрация: 03.03.2016
Сообщений: 33

Спасибо! То что надо. Ещё немного переделаю под себя.
Ответить с цитированием
  #4 (permalink)  
Старый 10.09.2020, 22:49
Аватар для Ops
Ops Ops вне форума
Аспирант
Отправить личное сообщение для Ops Посмотреть профиль Найти все сообщения от Ops
 
Регистрация: 03.03.2016
Сообщений: 33

А как сделать что бы одна картинка, не грузилась в браузер несколько раз?
Ответить с цитированием
  #5 (permalink)  
Старый 10.09.2020, 23:50
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

картинка загружается единожды (если адрес не меняется динамически)
далее картика берется из кеша браузера
у вас стоит Disable cache галочка
уберите, и увидите, что берется из кеша, не дергая сервер
Ответить с цитированием
  #6 (permalink)  
Старый 10.09.2020, 23:57
Аватар для Ops
Ops Ops вне форума
Аспирант
Отправить личное сообщение для Ops Посмотреть профиль Найти все сообщения от Ops
 
Регистрация: 03.03.2016
Сообщений: 33

Ох пардон, мне что то самому голову заморочили. Премного благодарен.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнение скрипта после загрузки контента с другой страницы TibiTotoro Общие вопросы Javascript 2 26.04.2018 15:04
Запуск функции после загрузки дива qwe88 Общие вопросы Javascript 18 01.09.2015 10:40
Почему не видно текста JavaScript скрипта после динамической загрузки? xintrea AJAX и COMET 1 13.07.2015 12:55
Действие после полной загрузки Воитель Общие вопросы Javascript 4 02.10.2008 18:20
Выполнить код после загрузки изображения EugenyK Events/DOM/Window 2 15.07.2008 10:09