Показать сообщение отдельно
  #7 (permalink)  
Старый 31.07.2014, 05:37
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,495

Как-то так это делается, если писать по-человечески:
function loadedCallback(){
  alert('загружены все');
}

document.addEventListener("DOMContentLoaded", function(event) { //когда загружен dom
  //картинок ещё не загружено
  var imgsLoading = 0;
  //обработчик загрузки
  function loaded(){
    //декрементируем кол-во загружающихся картинок, и если после этого осталось 0 - значит загружены все
    if(--imgsLoading === 0) loadedCallback();
  }  
  
  //полуаем все картинки, если нужны не все, а из какого-то блока, соответственно меняем document на нужный элемент.
  var imgs = document.getElementsByTagName('img'), i = imgs.length;
  
  //перебираем в цикле
  while(i--){
    //если уже загружена - переходим к следующей
    if(imgs[i].complete) break; 
    
    //инкрементируем кол-во незагруженных
    imgsLoading++;
    //вешаем обработчик на случай загрузки или ошибки
    imgs[i].onload = imgs[i].onerror = loaded;        
  }
  
  //если все уже загружены - сразу вызывем колбэк
  if(imgsLoading === 0) loadedCallback();
});
__________________
29375, 35

Последний раз редактировалось Aetae, 31.07.2014 в 05:42.
Ответить с цитированием