mediol-name
@mediol-name
Wordpress Developer

Как плавно изменять высоту блока?

Привет всем! Делаю аккордеон. Не могу настроить плавность изменения высоты блока.

Верстка:
<li class="faq__item">
  <div class="question">
    <h3>Which?</h3>
    <img src="assets/img/faq_ico.svg" alt="" class="faq__ico">
  </div>
  <div class="answer">
    <p>Content</p>
  </div>
</li>


Логика:
$('.question').click( function() {
    $('.answer').removeClass('open')
    $('.faq__ico').removeClass('open')
    $(this).next('.answer').toggleClass('open')
    $(this).children('.faq__ico').toggleClass('open')
})


Стили:
.answer {
        height: 0;
        overflow: hidden;
        transition: transform .3s;
        &.open {
            height: auto;
        }
        p {
            font-size: 12px;
            line-height: 1.6;
            padding-right: 28px;
            @media screen and (min-width: $lg) {
                font-size: 15px;
            }
        }
    }


При клике на вопрос, включается класс open, который через стили дает полную высоту блоку с ответом.
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
Liatano
@Liatano
В данном случае лучше работать с max-height
.answer {
        max-height: 0;
        overflow: hidden;
        transition:all 0.5s ease;/*тут поиграться с функцией,чтобы эффект больше нравился*/
}
.answer.open {
       max-height:1000px;/*высоту по предполагаемому максимальному объему информации с запасом*/
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@klusovd
Используйте готовые методы slideUp и slideDown. Будет проще и красивее. Там и скорость можно задавать.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы