在jQuery中,你可以fadeOut()而不会丢失元素的不动产吗? (不可见vs显示:无)

时间:2010-06-19 01:51:33

标签: jquery jquery-animate jquery-effects

因为我需要fadeIn()返回相同大小的另一个元素,是否有办法使fadeOut()元素保持空间,以便其他元素不会重新流动一瞬间然后fadeIn()将带回另一个相同大小的元素?

4 个答案:

答案 0 :(得分:9)

我想到了两种技巧:

  1. 将元素包裹在占用正确空间量的div中。
  2. 使用.animate方法将项​​目的不透明度从100%更改为0%,然后,当动画完成时,交换新元素并再次使用animate将不透明度从0%更改为100%。

答案 1 :(得分:2)

我的建议是你用div包装它......并在那个div上加上相同的维度...

答案 2 :(得分:2)

将要折叠的元素保持在固定的<div style="display:block;width:300px;height:200px;">内,然后如果隐藏其中的元素,则根本不会影响布局。

答案 3 :(得分:0)

我已经做了自己的修复。在运行fadeOut之前,我运行此函数:

    /**
     * Keep the window height, to avoid user being thrown up (i.e. on fade out, remove, hide, etc)
     */

        function keepHeight() {
            $('body').css('min-height', $(document).height());
        }

例如:

/**
 * Keep window height
 */

    keepHeight();

/**
 * Fade out
 */

    $('#someDiv').fadeOut();