Javascript Div 最高

标签 javascript jquery css html alignment

我试图让一排 div 都与最高的那个的高度相匹配,所以它们看起来是统一的。

我已经阅读了很多这方面的资料,但似乎找不到任何适用于跨浏览器的解决方案。

我目前使用的脚本是:

    var maxHeight = 1;

    $('.thumbnail').each(function() {
        maxHeight = maxHeight > $(this).height() ? maxHeight : $(this).height();
    });

    $('.thumbnail').each(function() {
        $(this).height(maxHeight);
    });

逻辑上我不明白为什么这行不通?

在 Firefox 中运行良好,但在 Chrome 和 Safari 中似乎会导致问题。

这里有一个 fiddle 供您使用:http://jsfiddle.net/UtMz3/

真正奇怪的是它确实在 fiddle 中起作用,但在我的网站上却不起作用。

更新

所以发生的事情是 Chrome 在将图像加载到其中之前获取 DIV 高度。所以 Chrome 获取 DIV 大小,比方说 120px,然后加载图像,从而将 DIV 大小更改为更接近 290px。我不明白为什么会这样,似乎在 $(document).ready({}) 包装器中应该可以解决这个问题。我也试过将 JavaScript 放在页面底部,但结果仍然相同。

非常感谢任何想法或意见, 亲切的问候, 詹姆斯

最佳答案

您需要检查如何将内容放入这些 div 中。如果 $(document).ready() 上还没有,那么内容可能正在动态添加,您需要等到添加后才能测量。

您如何等待内容出现取决于它是如何被添加的。

$(document).ready() 不等待图像加载。您需要为此使用 $(window).load(),因此如果内容包含图像,则您需要找到一种方法来等待它们加载。 $(window).load() 将等待所有图像加载,或者您可以在每个尚未加载的图像对象上安装 load 事件处理程序,以便在加载时收到通知他们完成加载。

关于Javascript Div 最高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16158301/

相关文章:

javascript - 如何创建在使用 Ajax 或刷新页面时不刷新的顶部栏?

javascript - 如何处理非常相似的按钮而不为每个按钮使用一种功能?

javascript - 尝试从 JSON 加载单词时出错

html - 如何在 css 中突出显示整行?

javascript - 使用 2 个不同的 href 和 CSS 定位重复 Angular ion-item

javascript - 在数组中显示下一张图片 onClick

javascript - 如何提高Reactjs中大状态的性能?

javascript - 排序并合并具有匹配值的 JSON 键

javascript - HTML 和 JavaScript 代码可在在线 HTML 编辑器上运行,但不能在本地计算机上运行

javascript - 在 Angular 中重复一个指令