Показать сообщение отдельно
  #6 (permalink)  
Старый 09.12.2013, 23:15
Профессор
Отправить личное сообщение для Faab Посмотреть профиль Найти все сообщения от Faab
 
Регистрация: 16.04.2012
Сообщений: 310

Сообщение от danik.js Посмотреть сообщение
DOM не причем. Просто не успевает загружаться.
Проверяй свойство eImg0.complete, и если оно false, то вешай обработчик onload и замеры делай уже в callback'е.
Ширину картинки можно получить проще (если картинки видимы):
img.offsetWidth
Но она включает в себя также border-width
danik.js, я никогда не вешал колбеки на load().. я тут настрочил ерунду какую-то.. примерно такое ты имел в виду?

$(window).load(){
  var eImg0 = document.querySelectorAll(".b-slider-img-container--img")[0];
  if(eImg0.complete){
    var oImg0Style = window.getComputedStyle(eImg0);
    var iImg0Width = parseInt(oImg0Style.getPropertyValue('width'));
    var iImg0Height = parseInt(oImg0Style.getPropertyValue('height'));
    console.log('iImg0Width = ' + iImg0Width);
  }else{
    eImg0.load(null;null;funtion(){
      var oImg0Style = window.getComputedStyle(eImg0);
      var iImg0Width = parseInt(oImg0Style.getPropertyValue('width'));
      var iImg0Height = parseInt(oImg0Style.getPropertyValue('height'));
      console.log('iImg0Width = ' + iImg0Width);
    }){};
  };
};
Ответить с цитированием