jquery resize函数没有按照我期望的方式工作

时间:2013-10-11 15:56:24

标签: javascript jquery html css events

我有一个容器元素,其中包含<img>标记。图像的宽度为100%,高度为auto。容器上的溢出设置为hidden,并且还有max-heightmin-height。我们的想法是让图像在最大和最小断点内确定容器的高度。

因此,容器具有相对高度。为了进行流体转换,我重置resize事件的高度(由于复杂的原因,img本身不设置高度,而是计算然后通过javascript更改)。这很好用,当我调整窗口大小时,一切正常。

但是我想在load事件上运行resize事件中的一些逻辑。所以,我以为我只会在加载中调用resize,如下所示:

$(window).load(function(){
    $(window).resize();
});

但是,这不起作用。使用此代码,如果我手动调整窗口大小甚至只有一个像素,则包含元素将正确缩放(与加载时计算的高度差异大约为200px与重置,正确缩放的高度)。

显然,我对这是如何工作的理解是错误的。我之前调用了其他事件来触发事件并触发其他事件。我怎样才能完成我想要的?

3 个答案:

答案 0 :(得分:1)

仍然想知道通过重新调整窗口大小实际上取得了什么,但另一种触发resize的方法是:

$(window).load(function() {
    $(this).trigger('resize');
});

答案 1 :(得分:0)

尝试.ready而不是.load

$(window).ready(function);

这是jsfiddle

答案 2 :(得分:0)

我不知道问题是什么。我改变了方法,找到了一个不需要在resize上调用load事件的不同解决方案。