JQuery:当元素隐藏时阻止div崩溃()

时间:2012-12-07 21:39:43

标签: javascript jquery html5 css3

当我提交表单时,表单“滑出”并使用$.get(),我加载另一页并将其滑入。在隐藏表单和显示下一页之间,div崩溃我的所有页脚内容都会短暂地结束表单所在的位置。

然后,当“下一页”完成加载时,页脚返回到底部(在新页面内容下)。 因为表单的大小可能会有很大变化,我试图避免为DIV指定高度。

有没有办法防止div改变?

代码:

$("#MyForm").hide("slide", { direction: "left" }, 250, function () {
    $.get("../NewPage.html", function (data) {
        $("#NewPagePlaceholder").html(data);
        $("#NewPagePlaceholder").show("slide", { direction: "right" }, 250);
    });
});

4 个答案:

答案 0 :(得分:9)

你在使用CSS吗?我会做一个假设(我知道但是我看不到任何代码),你使用display:none;来隐藏div,而应该尝试使用visibility:hidden。如果你正在使用JQuery,你可以在选择器中添加一个css()方法,并将可见性设置为隐藏。

答案 1 :(得分:6)

@ user1394965说的是什么。这是一个简单的例子:

.hide()将使对象的css属性为display: none,这将删除页面上占用的空间。 visibility: hidden属性会使其隐藏,但仍保留页面上的空间。

所以,而不是做:

$('#elementId').hide();

执行以下操作:

$('#elementId').css('visibility', 'hidden');

答案 2 :(得分:2)

上面的其他选项可能更好,您可以选择根据子div设置hieght,但很难知道这是一个好主意,而不会看到任何代码。

例如(未经测试):

var height = $('#childdiv').height();
$('#childdiv').parent().css('height', height);

答案 3 :(得分:0)

仅在动画期间指定div的高度。也就是说,在滑出旧表单之前,将div更改为相同的高度。在新表单滑入后,删除此设置高度。