2013-04-10 6 views
1

У меня есть слайдер с несколькими слайдами; каждый слайд имеет разную высоту.Установка высоты родителя в зависимости от высоты ребенка

Он работает следующим образом:

первый слайд

<holder> 
<slide - display: block> 
<slide - display: none> 
<slide - display: none> 
</holder> 

второй слайд

<holder> 
<slide - display: none> 
<slide - display: block> 
<slide - display: none> 
</holder> 

т.д.

горок имеют position: absolute (Это должно быть так).

Таким образом, проблема заключается в следующем: как динамически изменять высоту holder, чтобы увидеть весь контент каждого слайда?

Теперь у меня есть:

<script type="text/javascript"> 
    $(document).ready(function(){ 
    $(".holder").height($(".slide").height()); 
    }); 
</script> 

<script type="text/javascript"> 
    $(window).resize(function() { 
    $(".holder").height($(".slide").height()); 
    }); 
</script> 

но он использует только высоту первого слайда, так что другие слайды отрезаны.

Пожалуйста, используйте javascript, чтобы помочь в решении этой проблемы.

ответ

1

Вы можете перебирать их все, чтобы получить высоту самого высокого уровня .slide.

function updateSlideHolderSize() { 
    var max = 0; 
    $(".slide").each(function() { 
     max = Math.max(max, $(this).height()); 
    }); 
    $(".holder").height(max); 
} 

Так он будет идти в ваше приложение, как это:

<script type="text/javascript"> 
$(document).ready(updateSlideHolderSize); 
$(window).resize(updateSlideHolderSize); 

function updateSlideHolderSize() { 
    var max = 0; 
    $(".slide").each(function() { 
     max = Math.max(max, $(this).height()); 
    }); 
    $(".holder").height(max); 
} 
</script> 
+0

нормально, но как вставить его таким образом: <тип скрипта = «текст/JavaScript»> и имеет для изменения при изменении размера окна (это мобильный сайт) –

+0

Обновлен с полным примером кода. –

+0

Хорошо работает отлично, Как добавить опцию для добавления fex 10px на эту высоту? и, может быть, вы знаете, как изменить высоту в соответствии с фактическим слайдом? У меня слайд с очень разными высотами, fx 70px и 300px. –

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