在jQuery中向下滑动后,如何平滑向上滑动以适应内容高度?

在jQuery中向下滑动后,如何平滑向上滑动以适应内容高度?,jquery,Jquery,我有一个问题我不太确定。这是我的设想。我有一系列带有链接的列表项。每当点击一个链接时,它都会将一个“加载”图像插入一个跨距并向下滑动。某些操作完成后,删除“加载”图像,并将内容放置到位。问题不在于滑动本身,而是在操作完成后。这是我的密码: <ul> <li><a href="#">Item 1</a></li> <li><a href="#">Item 2</a></li>

我有一个问题我不太确定。这是我的设想。我有一系列带有链接的列表项。每当点击一个链接时,它都会将一个“加载”图像插入一个跨距并向下滑动。某些操作完成后,删除“加载”图像,并将内容放置到位。问题不在于滑动本身,而是在操作完成后。这是我的密码:

<ul>
    <li><a href="#">Item 1</a></li>
    <li><a href="#">Item 2</a></li>
    <li><a href="#">Item 3</a></li>
    <li><a href="#">Item 4</a></li>
    <li><a href="#">Item 5</a></li>
</ul>

因此,在本例中,加载图像将插入带有1em填充的范围,并附加到列表项中。然后将跨度向下滑动,以获得良好的效果。每当操作完成并插入内容时,跨度“跳”到内容的高度。我想知道我如何能够动画的高度变化,从适应高度的填充图像的高度的内容。谢谢。

我会将跨度换成div,并设置一个特定的高度,以确保动画流畅。 见雷米的文章


在你的代码中也使用了一个叫做t的变量。你不需要一直用$()包装它,因为它已经是一个jquery对象。

我会用一个div替换跨度,并设置一个特定的高度,以确保动画流畅。 见雷米的文章


在你的代码中也使用了一个叫做t的变量。您不需要一直用$()包装它,因为它已经是一个jquery对象。

您需要这样做:

$.getJSON("/Home/DoStuff/?ran=" + ran, null, function(data) {
    var div = t.children(".content");
    var h = div.height();

    div.html(data);
    var i = div.height();
    div.height(h);

    div.animate({
        height: i
    }, 500);

    t.children(".loading").remove();
});

请注意,在使用返回的任何数据切换“loading”元素后,您希望获得新内容的高度,然后立即将高度设置为切换新内容之前的高度。从那里,您可以将动画设置为新内容的高度。

您需要执行以下操作:

$.getJSON("/Home/DoStuff/?ran=" + ran, null, function(data) {
    var div = t.children(".content");
    var h = div.height();

    div.html(data);
    var i = div.height();
    div.height(h);

    div.animate({
        height: i
    }, 500);

    t.children(".loading").remove();
});
请注意,在使用返回的任何数据切换“loading”元素后,您希望获得新内容的高度,然后立即将高度设置为切换新内容之前的高度。从那里你可以动画的高度,新的东西

$.getJSON("/Home/DoStuff/?ran=" + ran, null, function(data) {
    var div = t.children(".content");
    var h = div.height();

    div.html(data);
    var i = div.height();
    div.height(h);

    div.animate({
        height: i
    }, 500);

    t.children(".loading").remove();
});