Разницы никакой. Если не указать 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