3

当我的表单被提交时,表单“滑出”并使用$.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

4 回答 4

9

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

于 2012-12-07T21:41:12.493 回答
6

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

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

所以,而不是这样做:

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

请执行下列操作:

$('#elementId').css('visibility', 'hidden');
于 2012-12-07T21:46:26.650 回答
2

上面的其他选项可能更好,您确实可以选择基于子 div 设置高度,但是如果不查看任何代码,很难知道这是否是一个好主意。

例如(未经测试):

var height = $('#childdiv').height();
$('#childdiv').parent().css('height', height);
于 2012-12-07T21:54:33.587 回答
0

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

于 2012-12-07T21:41:48.360 回答