【问题标题】:Resize element when another element is resized调整另一个元素的大小时调整元素的大小
【发布时间】:2013-03-20 22:23:59
【问题描述】:

当窗口被调整大小时,我正在使用 jQuery 来调整元素的大小:

$(window).resize(function() {
  topHeight = $("#top").height();
  height = $(window).height() - 210;
  $("#container").height(height);
  $("#g").height(height-25);
});

topHeight 获取顶部栏的最新高度,因为它可以重新排列。

我的问题是,当#top 改变高度时,我无法找到调整#container 大小的方法。我试过使用$("#topRow").resize(function() { }),但它似乎不适用于元素。

【问题讨论】:

标签: javascript jquery css html


【解决方案1】:

#top的高度发生变化时,你必须捕捉到每一个事件。

如果在调整窗口大小时发生这种情况,则应将逻辑绑定到 window.resize,因此问题中的代码应该可以工作。

如果#top改变高度时还有其他事件,那么你也应该在那里绑定逻辑。

更新:在你提到的cmets中有一个多选字段,它可以使#topRow元素改变它的高度,所以这是一个事件,你可以添加你的逻辑.

注意:还有另一种选择。您创建一个setInterval,它会定期检查#topRow 的大小并在必要时调整#container,但我个人不推荐这种解决方案。

【讨论】:

  • 我如何在那里绑定逻辑? $("#topRow").resize() 似乎什么也没做
  • #topRow的高度什么时候变化?
  • 当浏览器的宽度改变或者太多的项目被添加到自定义的多选字段时,它会改变。
  • @Dyne 因此,有 2 个事件:窗口调整大小,以及将项目添加到多选字段时。您必须分离容器高度更新器逻辑,并将其添加到两种情况。
  • @Dyne 在答案中添加了另一个解决方案作为注释,但我不推荐它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-28
  • 1970-01-01
  • 1970-01-01
  • 2021-10-28
  • 2013-03-04
  • 1970-01-01
  • 2020-02-21
相关资源
最近更新 更多