Top.Mail.Ru
","dateCreated":"2025-03-18T09:48:10+03:00","datePublished":"2025-03-18T09:48:10+03:00","upvoteCount":1,"author":{"@type":"Person","name":"c_a_t_t_u_s","url":"https://otvet.mail.ru/profile/c_a_t_t_u_s"},"url":""},{"@type":"Answer","text":"а в чем сложность? Средствами Javascript добавляешь атрибуты стиля тегам через необходимое время. Или вообще можно добавить блок style.","dateCreated":"2025-03-18T09:39:01+03:00","datePublished":"2025-03-18T09:39:01+03:00","upvoteCount":1,"author":{"@type":"Person","name":"partner_wwwa77rru","url":"https://otvet.mail.ru/profile/partner_wwwa77rru"},"url":""},{"@type":"Answer","text":"на промисах это делается.. можно резолвить задержку как там: \nhttps://local-disc.firebaseapp.com/menu/articles/HashRouter.html#/blog\n \n // Применяем подсветку после задержки (только для '/blog') if (path === '#/blog') { await new Promise(resolve => setTimeout(resolve, delay)); // Ожидание перед подсветкой hljs.highlightAll(); // Подсветка для страницы blog } else { hljs.highlightAll(); // Подсветка для других страниц без задержки }","dateCreated":"2025-03-18T10:30:38+03:00","datePublished":"2025-03-18T10:30:38+03:00","upvoteCount":0,"author":{"@type":"Person","name":"z9xsvoipgjphzyl","url":"https://otvet.mail.ru/profile/z9xsvoipgjphzyl"},"url":""}]}},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"WebPage","@id":"https://otvet.mail.ru/space/programming/","name":"Программирование"}},{"@type":"ListItem","position":2,"item":{"@type":"WebPage","name":"Отложенная загрузка CSS для определенного элемента на странице?"}}]}]}
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Отложенная загрузка CSS для определенного элемента на странице?

Подскажите, как сделать отложенную загрузку CSS стилей для определенного элемента на странице? И если это нужно сделать после выполнения определенного JS скрипта, например после нажатия кнопки, на элементе через 5 секунд появляются стили указанные в общем CSS файле.

По дате
По рейтингу
Аватар пользователя
Новичок
3мес

Вот так например...
https://jsfiddle.net/51gj48sp/

12345678910111213141516171819202122232425262728293031323334
 <!doctype html>  
<html lang="ru">  
<head>  
  <meta charset="utf-8" />  
  <title></title> 
  <style> 
    .st { 
      width: 50px; 
      height: 50px; 
      background-color: red ; 
    } 
  </style>   
</head>  
<body>  
 <button id="but">CSS</button>   
 <p id="countdown">Стиль загрузится через 10 секунд.</p>  
 <div id="div"></div> 
<script> 
but.onclick = function(){ 
let time = 10;  
const timer = setInterval(() => { 
  const countdownElement = document.getElementById('countdown');  
  if(time > 0) { 
    countdownElement.textContent = `Стиль загрузится  через ${time--} секунд.`; 
  } else { 
    clearInterval(timer);
    countdownElement.textContent = '';      
    div.className = 'st'; 
  }    
}, 1000); 
} 
</script>  
</body>  
</html> 
Аватар пользователя
3мес
123456789101112
 const button = document.querySelector('button') 
 
function handleAddStyles() { 
    setTimeout(() => { 
        const link = document.createElement('link') 
        link.rel = 'stylesheet' 
        link.href = 'styles.css' //путь к css файлу
        document.head.appendChild(link)  
    }, 5000) //задержка 5 сек 
} 
 
button.addEventListener('click', handleAddStyles) 
Аватар пользователя
Просветленный
3мес

Можно попробовать подключить ссылку на css файл через 5 секунд
<link rel="stylesheet" />

<button>Click me</button>

*Поставить скрипт в конец html*
<script>
function getCSS() {
setTimeout(
document.querySelector('link')
.setAttribute('href', 'адрес к css файлу'), 5000);
}

document.querySelector('button'). addEventListener('click', getCSS);
}
</script>

Аватар пользователя
Мудрец
3мес

а в чем сложность? Средствами Javascript добавляешь атрибуты стиля тегам через необходимое время. Или вообще можно добавить блок style.

Аватар пользователя
Искусственный Интеллект
3мес

на промисах это делается.. можно резолвить задержку как там: https://local-disc.firebaseapp.com/menu/articles/HashRouter.html#/blog

1234567
             // Применяем подсветку после задержки (только для '/blog') 
if (path === '#/blog') { 
    await new Promise(resolve => setTimeout(resolve, delay)); // Ожидание перед подсветкой 
    hljs.highlightAll();  // Подсветка для страницы blog 
} else { 
    hljs.highlightAll();  // Подсветка для других страниц без задержки 
}