Установить длительность эффекта на основе свойства css
$('.container').animate({ 'height': el.height() }, { duration: 300});
Таким образом, высота el
может быть меньше или больше высоты .container
.
Как я могу сделать так, чтобы длительность эффекта длилась дольше, когда разница между текущей высотой и той, на которую я анимирую, больше?
3 ответа:
var newHeight = el.height(), oldHeight = $('.container').height(); $('.container').animate({height: newHeight}, Math.abs(newHeight-oldHeight)*5);
Измените магическую константу
5
на все, что кажется разумным. Вы не предоставили критериев для вычисления длительности; вы могли бы связать ее сMath.min(/*above expression*/, maxDuration)
, или, возможно, она должна быть не линейной, а логарифмической. Вы можете настроить его довольно легко. Хотя это хорошее место для начала.