Разницы никакой. Если не указать px, сравнение (elBlock.style.height === "0px") не сработает, т.к. при чтении свойства возвращается "0px", даже если перед этим задать ему "0".
Если блок развёрнут, его height=auto, а для перехода необходимо конкретное значение, которое получаем через scrollHeight. Затем нужно пересчитать («применить») height, для этого используется getComputedStyle() (MDN: getComputedStyle).
Да, действительно, можно использовать clientHeight, его вызов «применяет» текущее значение height. Благодарю за совет!
Имелась ввиду реализация самой анимации, например, с использованием requestAnimationFrame() для уменьшения/увеличения height, + поддержка timing-functions
px
, сравнение (elBlock.style.height === "0px"
) не сработает, т.к. при чтении свойства возвращается"0px"
, даже если перед этим задать ему"0"
.height=auto
, а для перехода необходимо конкретное значение, которое получаем черезscrollHeight
. Затем нужно пересчитать («применить»)height
, для этого используетсяgetComputedStyle()
(MDN: getComputedStyle).Да, действительно, можно использовать
clientHeight
, его вызов «применяет» текущее значениеheight
. Благодарю за совет!Рисунок — Отличия между offsetHeight, clientHeight и scrollHeight
requestAnimationFrame()
для уменьшения/увеличенияheight
, + поддержка timing-functions