Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于css属性设置效果持续时间_Javascript_Jquery_Jquery Effects - Fatal编程技术网

Javascript 基于css属性设置效果持续时间

Javascript 基于css属性设置效果持续时间,javascript,jquery,jquery-effects,Javascript,Jquery,Jquery Effects,所以el的高度可以小于或大于容器的高度 当当前高度与正在设置动画的高度之间的差异较大时,如何使效果持续时间更长 $('.container').animate({ 'height': el.height() }, { duration: 300}); 不确定它是否是正确的JS语法,但它应该可以工作 编辑:没关系,看看大卫的答案 if ($(.container).height() - $(el).height() > 0) { // Whatever you want to d

所以el的高度可以小于或大于容器的高度

当当前高度与正在设置动画的高度之间的差异较大时,如何使效果持续时间更长

$('.container').animate({ 'height': el.height()  }, { duration: 300});
不确定它是否是正确的JS语法,但它应该可以工作

编辑:没关系,看看大卫的答案

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

将魔法常数5更改为任何看起来合理的值。您没有提供计算持续时间的标准;您可以将它与上面的Math.min/*表达式*/、maxDuration绑定,或者它不应该是线性的,而应该是对数的。你可以很容易地定制它。虽然这是一个很好的起点。

为什么要这样做?固定期限似乎是合理的。如果持续时间与高度差成比例,则将是无限的,即大的更改将花费很长时间,这对用户来说不是太友好。
var newHeight = el.height(),
    oldHeight = $('.container').height();
$('.container').animate({height: newHeight}, Math.abs(newHeight-oldHeight)*5);
$('.container').animate({height:el.height()},($(this).height()-el.height()>el.height())?3000:100);