Для того, чтобы получить высоту только видимой части блока, можно воспользоваться следующими шагами:
1. Получить высоту всего блока:
const block = document.getElementById('blockId'); const fullHeight = block.offsetHeight;
2. Получить высоту видимой области блока:
const visibleHeight = block.clientHeight;
3. Получить вертикальное смещение верхней границы видимой области от верхней границы всего блока:
const scrollTop = block.scrollTop;
4. Рассчитать высоту видимой части блока:
const visiblePartHeight = Math.min(scrollTop + visibleHeight, fullHeight) - scrollTop;
Таким образом, переменная visiblePartHeight
будет содержать высоту только видимой части блока.
Обратите внимание, что для вычисления видимой части блока, он должен быть стилизован с использованием CSS свойства overflow: auto
или overflow: scroll
, чтобы иметь возможность прокручивать содержимое блока и определить его видимую часть.