position: sticky
. Нужно отследить, когда он прилипает к верхней части окна браузера. Нашел пример с использованием IntersectionObserver, но есть небольшая проблема, которую я не знаю как решить - коллбэк срабатывает при пересечении элементом в том числе и нижней части.