根据 CSS 属性设置效果持续时间

发布于 2024-11-16 05:39:02 字数 209 浏览 5 评论 0原文

$('.container').animate({ 'height': el.height()  }, { duration: 300});

因此 el 的高度可以小于或大于 .container 的高度。

当当前高度与我要制作动画的高度之间的差异较大时,如何才能使效果持续时间更长?

$('.container').animate({ 'height': el.height()  }, { duration: 300});

So el's height can be smaller or greater than .container's height.

How can I make it so the effect duration lasts longer when the difference between the current height and the one to which I'm animating is larger?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

芸娘子的小脾气 2024-11-23 05:39:02
var newHeight = el.height(),
    oldHeight = $('.container').height();
$('.container').animate({height: newHeight}, Math.abs(newHeight-oldHeight)*5);

将魔术常量 5 更改为任何看起来合理的值。您没有提供计算持续时间的标准;您可以将其与 Math.min(/*above expression*/, maxDuration) 绑定,或者它不应该是线性的,而是对数的。你可以很容易地定制它。尽管这是一个很好的起点。

var newHeight = el.height(),
    oldHeight = $('.container').height();
$('.container').animate({height: newHeight}, Math.abs(newHeight-oldHeight)*5);

Change the magic constant 5 to anything that seems reasonable. You didn't provide criteria for computing the duration; you might bound it with Math.min(/*above expression*/, maxDuration), or maybe it shouldn't be linear but logarithmic. You can customize it quite easily. Although that's a good place to start.

公布 2024-11-23 05:39:02
if ($(.container).height() - $(el).height() > 0)
{
    // Whatever you want to do if the container is higher than el
}
else
{
    // Other case
}

不确定它是否是正确的 JS 语法,但它应该可以工作。

http://api.jquery.com/height/

编辑:没关系,看看达文的答案。

if ($(.container).height() - $(el).height() > 0)
{
    // Whatever you want to do if the container is higher than el
}
else
{
    // Other case
}

Not sure if it's proper JS Syntax, but it should work.

http://api.jquery.com/height/

EDIT: Nevermind, look at davin's answer.

漆黑的白昼 2024-11-23 05:39:02
$('.container').animate({height:el.height()},($(this).height()-el.height()>el.height())?3000:100);
$('.container').animate({height:el.height()},($(this).height()-el.height()>el.height())?3000:100);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文