Когда вы устанавливаете что-то как абсолютное, вы помещаете его в местоположение относительно контейнера (ближайший контейнер с положением абсолютное или относительное ...). Но когда вы прокручиваете вниз, позиция 0 повышается, поэтому вы видите это поведение.
Другими словами, когда вы прокручиваете div, относительное местоположение 0 также изменяется, поэтому внутренний абсолютный div также прокручивается вверх.
У вас есть два варианта:
- Элемент списка устанавливает фиксированную позицию, однако это делает ее относительной к странице (поэтому она фиксируется с позицией top: 0; ВСЕГДА будет вверху страницы независимо от того, где она находится в html
OR
- Переместите внутренний абсолютный div на один уровень вверх и сделайте контейнер относительным, чтобы ваш HTML выглядел примерно так:
https://jsfiddle.net/3adctabu/6/ - рабочий пример jsfiddle, который вы предоставили для 2-го optin.
<div class="outer-container-that-is-relative">
<div class="inner-absolute"></div>
<div class="scrollable-content"></div>
</div>