jquery动画到min-height或auto

时间:2009-12-13 02:48:05

标签: jquery

我在这里有一些jquery的东西来点击动画一层。问题有时内容可能超过高度设置中分配的高度。有没有办法修改它以将图层设置为最小高度或自动而不是设置px金额?

$(function() {
    $(".showcart").click(function(){
        $("#cart").animate({ height: "250px" }).animate({ height: "200px" }, "fast");
    });
    $(".hidecart").click(function(){
        $("#cart").animate({ height: "250px" }).animate({ height: "0px"}, "fast");
    });
});

3 个答案:

答案 0 :(得分:21)

我发现你可以这样做:

 $("#cart").animate({ 'min-height': "250px" }, 'fast');

行情是关键所在。

答案 1 :(得分:3)

不幸的是,不能告诉它只是为适合的动画制作动画。要做到这一点,你要么已经知道正确的尺寸,要么有办法计算它。

如果这一切都发生在单个函数或单个插件中,您可能需要考虑在扩展它之前将$(this).height()的值存储在某个变量中,因此您将能够将其放回到位置它曾经是。

否则,一种可能性就是将div放在你想要增长/缩小的div中,并使用get $('> div', $(this)).height()来获得你内部div的高度,这应该是它内容的高度,无论是什么你对外面div的高度有多乱。

答案 2 :(得分:1)

这有点难度,因为它很大程度上取决于页面的结构。如果您可以设置css min-height,或者将另一个元素的高度作为参考点,您可以设置为该大小的动画,使事物更加动态。遗憾的是,jQuery中没有自动魔法调整大小的方法。

$(this).css("min-height"); //Gets min-height CSS property

// or..

$(this).height(); //Gets element height

希望有所帮助。