2015-09-12 3 views
3

Я создаю сайт, который динамически позиционирует контент в середине группы разделов.Каждый не инкапсулирующий блок

Див с фоном изображения (Полная ширина изображения - FWI)

Див с фоновым изображением (разной высоты)

Моя проблема заключается даже с каждого селектора первым DIV используется для диктовать высоту любые другие дивы под ним, я, очевидно, что-то отсутствует довольно основные

Jquery

jQuery(window).on("resize", function() { 
    jQuery('.fwi').each(function() { 
    jQuery('.image-outer').height(jQuery('.fwi-image').height()); 
    }); 
}).resize(); 


jQuery(".fwi-image img").load(function() { 
    jQuery('.fwi').each(function() { 
    jQuery('.image-outer').height(jQuery('.fwi-image').height()); 
    }); 
}); 

HTML

<div class="fwi"> 
    <div class="relative">  
      <div class="fwi-image full-width"> 
       <img width="1920" height="1080" src=""> 
      </div> 
      <div class="outer image-outer" style="height: 1080px;"> 
      my content which is dynamically positioned in the center vertically in my div 
      </div> 
    </div> 
</div> 


<div class="fwi"> 
    <div class="relative">  
      <div class="fwi-image full-width"> 
       <img width="1920" height="1200" src=""> 
      </div> 
      <div class="outer image-outer" style="height: 1080px;"> 
     will take height from previous image-outer not its parent - it should be 1200 
      </div> 
    </div> 
</div> 
+0

Вот сайт: Вы можете увидеть второй блок изображения текст сидит слишком низко, потому что его принимая размер первого блока изображения http://prestlaundry.com/ –

ответ

1

Поместите это в документ.

function adjustImageOuterHeight() { 
    var fwiImage = jQuery(this).parent(".fwi-image"); 
    var imageOuter = fwiImage.next(".image-outer"); 
    imageOuter.height(fwiImage.height()); 
} 

jQuery(document).ready(function() { 
    jQuery(".fwi-image img") 
     .load(adjustImageOuterHeight) 
     .each(function() { 
      if (this.complete) adjustImageOuterHeight.call(this); 
     }); 
}); 

jQuery(window).resize(function() { 
    jQuery(".fwi-image img").each(adjustImageOuterHeight); 
}); 

Сыпучие любой другой Jquery вещи, связанные с .fwi-image. И необязательно освободите свой явный вызов до .resize() на объекте window.

+0

то не решить мою проблему, хотя потому что каждый из этих разделов может находиться в другом месте в моей DOM - из-за разных макетов страниц. Можно ли использовать селектор ('this')? –

+0

О, я вижу, обработчик событий «load» для изображений регистрируется слишком поздно, после того как они загружены. –

+0

Это работает для вас? –

Смежные вопросы