У меня есть веб-сайт на основе React, который включает этот список ссылок вверху каждой страницы:
<ul>
<li><a href="/">HOME</a></li>
<li><a href="/about-us">ABOUT US</a></li>
<li><a href="/#contactSection">CONTACT US</a></li>
</ul>
Внизу главной страницы у меня есть этот фрагмент HTML:
<section id="contactSection" className="contactSection ptb_100">
<h2>Contact Us</h2>
...HTML FORM...
</section>
Когда я нажимаю ссылку «Свяжитесь с нами» в верхней части главной страницы, Chrome прокручивается до правильного HTML-кода, указанного contactSection
, однако Safari прокручивается до верхней части страницы. Когда я щелкаю ссылку «Свяжитесь с нами» на другой странице сайта или ввожу #contactSection
в адресную строку и нажимаю Enter, Safari правильно прокручивается.
Я просмотрел темы, предлагающие добавить /
в href, но это не сработало. Есть предложения?
ОБНОВЛЕНИЕ Причиной проблемы был липкий заголовок в верхней части страницы, из-за которого Safari удерживал страницу вверху. Удаление липкого заголовка решило проблему, хотя и не знаю почему.
Учитывая предыдущую косую черту, он ищет #contactSection в корневом каталоге, а не на текущей странице? (при условии, что текущая страница не является домашней). Или у вас есть функция scrollspy, загруженная на эту страницу, и/или элементы с фиксированным положением (например, липкое меню)?
Ссылка работает, если щелкнуть ее с любой страницы, кроме домашней страницы, которая также является страницей, содержащей
#contactSection
.