@Dubrovin

Как сделать анимацию выпадения аккордеона без jQuery?

Как на JS/CSS сделать анимацию раскрывающегося аккордеона (например, impreza.us-themes.com/elements/accordion/)? В jQuery встроены эффекты slideIn/slideOut, которые раскрывают/скрывают любое содержимое. Попытался сделать такое на обычном CSS упёрся в то, что transition на height "криво" работает, если есть внутри маржины/паддинги (при height: 0 и не пустых отступах высота контента будет не нулевой, а если трансформация сразу и на отступы и на высоту - эффект работает "криво", box-sizing border-box не помогает). Плюс проблема с тем, что высота контента может быть разной и если она не задана точно, то анимация вообще работать не будет.
Как такое сделать на ванильном JS? К какому свойству привязаться, чтобы эффект слопывания/раскрытия работал на элементе в не зависимости от того, какой контент лежит внутри? Ну или, возможно, порекомендуете библиотеку для анимации (не сильно тяжёлую), с помощью которой это легко реализовать.
  • Вопрос задан
  • 2294 просмотра
Решения вопроса 1
@Dubrovin Автор вопроса
Всё оказалось просто. В закрытом состоянии добавил в css overflow:hidden, height: 0. При этом в JS для получения высоты блока использовал свойство scrollHeight
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы