2014-11-19 2 views
0

У меня есть 2 столбца (слева и справа), что я хочу равных столбцов. Используемый ниже код делает это отлично. Тем не менее, в столбце слева у меня есть скрытый текст/абзацы, которые можно увидеть, нажав кнопку, которая затем откроет скрытый контент. Код, который я использую, не учитывает дополнительную высоту, он просто перекрывается.Равная высота столбца на скрытых элементах

Какую модификацию кода следует внести для учета дополнительной высоты при обнаружении скрытого содержимого?

HTML:

<div class="container"> 

    <div class="blocks left"> 
     <button>Show</button> 

     <div class="hidden-content"> 
      Yup! 
     </div> 
    </div> 
    <div class="blocks right"></div> 
</div> 

JS:

function setEqualHeight(columns) { 
    var tallestcolumn = 0; 
    columns.each(function() { 
     currentHeight = $(this).height(); 
     if (currentHeight > tallestcolumn) { 
      tallestcolumn = currentHeight; 
     } 
    }); 
    columns.height(tallestcolumn); 
} 

setEqualHeight($('.blocks')); 
+1

Вызов 'setEqualHeight' снова на бегах/разоблачающей. – anpsmn

+0

Все те же. Скрытый контент перекрывает содержимое ниже. – jfrosty

+0

Создает ли контейнер новую высоту после обнаружения скрытого div? – anpsmn

ответ

1

Перед выявления/скрытия содержание сбросить высоту, которая была добавлена ​​в контейнер .blocks в `Авто». Раньше высота фиксировалась (при первоначальном расчете), поэтому любое добавленное содержимое перекрывалось бы.

JS

//on click of the button 
$('button').on('click', function() { 
    $('.blocks').css("height", "auto"); 
    $('.hidden-content').show(); 
    setEqualHeight($('.blocks')); 
}); 

Fiddle

+0

Вот что странно. Я использую slideToggle, чтобы скрыть и показать содержимое. Когда я нажимаю, это не работает, но когда я нажимаю, чтобы закрыть, он добавляет новую высоту. Не уверен, что я делаю неправильно. – jfrosty

+0

Можете ли вы добавить скрипку? – anpsmn

+0

Это похоже на то, что вы сделали? [Fiddle] (http://jsfiddle.net/anpsmn/sgauu4jh/2/) – anpsmn

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