У меня есть страница с фиксированным заголовком. На этой странице у меня есть таблица, которая имеет функциональность, которая при щелчке по строке, страница прокручивается до этого элемента. Каждая строка таблицы имеет идентификатор, соответствующий идентификатору элемента. Итак, по щелчку я получаю идентификатор элемента и затем выполняю эту функцию
element.scrollIntoView({block: 'start', behavior: 'smooth'})
Проблема с этим подходом состоит в том, что прокрутка заходит слишком далеко, и некоторая часть элемента скрыта под фиксированным заголовком. Я посмотрел на множество решений по переполнению стека, но ни одно из них не помогло мне. Я хочу, чтобы прокрутка заканчивалась на вершине элемента.
Итак, я попытался использовать
element.scrollTo({top: element.offsetTop, behavior: 'smooth})
Я сделал несколько вычислений, например, рассмотрел отступы / margin и заставил их работать. Проблема в том, что offsetTop отличается на разных устройствах. Приведенный выше лог c не работает для мобильных устройств и планшетов. offsetTop - это расстояние текущего элемента относительно вершины offsetParent, которое не будет одинаковым для каждого устройства.
Я знаю, что scrollIntoView
будет моей лучшей ставкой, но не уверен, как предотвратить элемент от прокрутки под фиксированным заголовком. Любая помощь приветствуется.