gpt4 book ai didi

javascript - jQuery 等高响应 div 行

转载 作者:数据小太阳 更新时间:2023-10-29 04:07:20 25 4
gpt4 key购买 nike

由于我的网站是完全响应式的,所以我需要根据每行调整 div 的大小,而不是将所有的设置为一个高度。

我正在使用以下修改后的代码来设置容器内所有 div 的高度:

$.fn.eqHeights = function() {
var el = $(this);
if (el.length > 0 && !el.data('eqHeights')) {
$(window).bind('resize.eqHeights', function() {
el.eqHeights();
});
el.data('eqHeights', true);
}
return el.each(function() {
var curTop = 0;
var curHighest = 0;
$(this).children().each(function(indx) {
var el = $(this),
elHeight = el.height('auto').outerHeight();

var thisTop = el.position().top;
if (curTop > 0 && curTop != thisTop) {
curHighest = 0;
}

if (elHeight > curHighest) {
curHighest = elHeight;
}

curTop = thisTop;

}).height(curHighest);
});
};

我有 var thisTop = el.position().top; 来确定哪些元素在同一行上,但不确定如何将同一行中的所有元素设置为最大值?

目前 .height(curHighest); 将所有元素设置为相同的高度,无论它们是否在同一行。

最佳答案

设法使用以下代码段使其工作:

$.fn.eqHeights = function(options) {

var defaults = {
child: false
};
var options = $.extend(defaults, options);

var el = $(this);
if (el.length > 0 && !el.data('eqHeights')) {
$(window).bind('resize.eqHeights', function() {
el.eqHeights();
});
el.data('eqHeights', true);
}

if( options.child && options.child.length > 0 ){
var elmtns = $(options.child, this);
} else {
var elmtns = $(this).children();
}

var prevTop = 0;
var max_height = 0;
var elements = [];
elmtns.height('auto').each(function() {

var thisTop = this.offsetTop;

if (prevTop > 0 && prevTop != thisTop) {
$(elements).height(max_height);
max_height = $(this).height();
elements = [];
}
max_height = Math.max(max_height, $(this).height());

prevTop = this.offsetTop;
elements.push(this);
});

$(elements).height(max_height);
};

我还添加了指定特定元素的功能,这样它就可以获得高度变化。

用法:

$('.equalheight').eqHeights();
$('.equalheight-frame').eqHeights({child:'.frame'});

关于javascript - jQuery 等高响应 div 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13029090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com