.item присваиваете высоту .hidden. Там ещё label рядом лежит, у которого своя высота есть + бордер + маргин. Замените 70 в расчёте h на высоту лейбла + его нижний маргин, и логика будет правильной. А ещё лучше просто сделайте так: let h = parent.scrollHeight;