在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();
});