Я пытаюсь создать меню с различными вкладками, которые можно щелкнуть, чтобы развернуть, а затем снова щелкнуть, чтобы свернуть.
Я успешно использовал css анимации / переходы для достижения этой цели путем изменения максимальной высоты. Однако каждый из блоков будет содержать различное количество контента, что приведет к разной высоте. Что, в свою очередь, заставляет их анимироваться на разных скоростях.
Это не такая большая проблема для расширения коробок, но очень заметна при их повторном свертывании, поскольку некоторые из них, кажется, ничего не делают в течение некоторого периода времени, а затем внезапно быстро закрываются, когда другие закрываются плавным движением.
Пример CSS, плюс несколько простых jQuery для добавления и удаления активного идентификатора:
.options .optionTab > div {
max-height: 0;
overflow: hidden;
transition: max-height 2s ease;
}
.options .optionTab#active > div {
max-height: 1000px;
transition: max-height 2s ease;
}
$(".optionTab > h3").click(function() {
if($(this).closest(".optionTab").attr("id") == "active") {
$(this).closest(".optionTab").attr("id", "");
}
else {
$(this).closest(".optionTab").attr("id", "active");
}
});
JSFiddle
Is Есть ли способ использовать анимацию css или javascript для достижения согласованной скорости анимации среди элементов различной высоты?