Итак, у меня есть следующий макет:
<div class="double_column_left">
//Left responsive content
</div>
<div class="double_column_right">
//Right responsive content
</div>
<div class="double_column_left">
//More left responsive content
</div>
<div class="double_column_right">
//More right responsive content
</div>
Мне нужно, чтобы высота каждого набора столбцов (каждая слева и справа рядом друг с другом) была одинаковой. Поэтому, если левый выше, чем правый, он установит правый столбец на высоту слева в Javascript и наоборот.
Это похоже на что-то легко выполняемое в Javascript/jQuery, каким-то образом перебирая страницу и сопоставляя каждый набор div в зависимости от того, какой порядок он набирает при каждом изменении страницы; но я никогда не делал ничего подобного раньше и не могу придумать, как это сделать.
Есть идеи?
Это должно работать:
function resizeColumns() {
var $leftColumns = $('.double_column_left');
$leftColumns.each(function() {
var $leftCol = $(this);
var $rightCol = $leftCol.next('.double_column_right');
var height = Math.max($leftCol.height(), $rightCol.height());
$leftCol.add($rightCol).height(height);
});
}
Теперь вы просто вызываете эту функцию, когда вам нужно изменить размер столбцов. Особенно, при загрузке страницы и при изменении размера окна:
$(document).ready(resizeColumns);
$(window).on('resize', resizeColumns);
Попробуйте это решение:
Измените высоту одного div '.double_column_right' и примените его к мини-высоте div ('.double_column_left'). Используйте следующий код JQuery:
var divHeight = $('.double_column_right').height();
$('.double_column_right').css('min-height', divHeight+'px');
Это приведет к тому, что все столбцы будут равны всем правам столбцов:
Jquery
var col1 = $(".double_column_left").height(),
col2 = $(".double_column_right").height();
if (col1 > col2) {$(".double_column_right").height(col1); } else {
$(".double_column_left").height(col2);
}
Попробуй это
$('.double_column_right').height(function () {
return $(this).prev().height();
});
.next()
? С чем ты не согласен?