Задача такая: есть форма поиска (поиск обычный, без ajax), и после перезагрузки страницы необходимо пользователя отправить к нужному блоку (скролл до определённого места страницы, а именно к форме поиска, прокрутив ниже, оставив позади шапку с меню).
Второй вариант: найти определённый ключ в ссылке и если он есть выполнить скролл до блока с нужным id.
Ссылка имеет вид _https://domen/razdel/?query=search_key
Собственно зоной интереса является ?query, т.к. всё остальное может меняться.
Нашёл свойства window.location.search, это при помощи него надо реализовывать? бы бы благодарен правильному решению.
Если описать функцию целиком, то так: если страница меньше 1000 px в ширину (определить при загрузке) -> если в ссылке содержится ?query -> выполнить скролл до объекта с id="main" с отступом сверху от него на 50px.
И главное, чтобы это можно было реализовать на чистом js, т.к. jquery я подключаю в конце страницы.
К сожалению в сниппете не работает, видимо скрипт снипета выполняется в SandBox, на реальном файле, работает.
Когда будете тестировать на реальном файле, просто добавьте после открытия в конец например ?query=2, на файл это не повлияет, но позволит скрипту сработать.
Почему сделан setTimeout смотрим в уточняющих комментариях.
function tryScroll() {
if (window.location.search.indexOf("?query") >= 0 && document.body.clientWidth < 1000) {
var el = document.getElementById("main");
window.scroll(0, findScrollPosition(el) + 50);
}
}
function findScrollPosition(obj) {
var curtop = 0;
if (obj.offsetParent) {
do {
curtop += obj.offsetTop;
} while (obj = obj.offsetParent);
return curtop;
}
}
window.onload = function() {
window.setTimeout(tryScroll, 0);
};
.start {
background-color: pink;
height: 500px;
}
#main {
background-color: green;
}
.end {
background-color: yellow;
height: 100px;
}
<div class="start">
start
</div>
<div id="main">
main
</div>
<div class="end">
end
</div>
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости