jQuery

Плавная прокрутка к элементу страницы на jquery

Поделитесь простым решением.Нужен код на js или jQuery желательно, чтобы по завершению запроса ajax и вставки данных в элемент к нему совершилась прокрутка окна.
Вам нужно знать ID элемента или ещё какой-нибудь уникальный идентификатор, к которому прокрутка идёт. В принципе, можно в ответе если это HTML код добавить к первому элементу какой-то идентификатор, или впереди прописать ссылку – флаг. Достаточно хорошо тема освещена в статье: Плавная прокрутка к элементу на jQuery и JS . Немного подкрутить к своим нуждам и все работать будет.
Евгений Копёнкин
Евгений Копёнкин
732
Лучший ответ
Валера Гришков Отличная статья. Остановился на решении с element.scrollIntoView(). Мне как раз то что нужно. Спасибо за инфу.
Александр Лиханский Вполне рабочий код. Интересно в конце прописано что это AI ChatGPT-4 сформировал.
Андрей Сафонов Работает, что нужно было. Спасибо за ссылку.
плавные прокрутки и черные фоны - в топе причин немедленного закрытия страницы пользователем
Валера Гришков Это нужно для блока комментариев, а там без прокрутки не обойтись. А так согласен с вами.
Гизат Бельденов Согласен, что когда пользователь открывает страницу и сразу идёт прокрутка то может и не понравится. А когда по оглавлению прокручивает, то всё предполагаемо, к тому же наблюдая за прокруткой, если не моментальной, пользователь подсознательно схватывает и остальной контент и потом может к нему вернуться. И если очень нужно, то не покинет страницу из-за прокрутки. Люди же не выключают телевизор из за рекламы тем более в приложениях где чтобы на другой канал перейти нужно ещё и внутреннюю рекламу посмотреть. Так, что если не переусердствовать с прокрутками, то никто не уйдёт. А вот с чёрным фоном согласен полностью, сам плююсь и ухожу с таких страниц если есть альтернатива.
Гизат Бельденов В смысле мне насоветовали? Это не от меня вопрос был.
Изи. Самый простейший вариант. Vanilla JS:
 const targetElement = document.getElementById('targetId'); 

fetch('url')
.then(response => response.text())
.then(text => {
targetElement.append(text);
// или
// targetElement.insertAdjacentHTML('afterbegin', text);
// или обрабатывай по своему, в зависимости от получаемых данных
targetElement.scrollIntoView({ behavior: 'smooth '});
})
// Выполняем AJAX-запрос
$.ajax({
url: 'example.com/data', // URL для запроса
method: 'GET', // Метод запроса
dataType: 'json', // Ожидаемый тип данных в ответе
success: function(data) {
// Обработка данных после успешного выполнения запроса
// Вставляем данные в элемент на странице
$('#targetElement').html(data);

// Выполняем прокрутку окна к целевому элементу
$('html, body').animate({
scrollTop: $('#targetElement').offset().top
}, 1000); // 1000 - время анимации в миллисекундах
},
error: function() {
// Обработка ошибок при выполнении запроса
console.error('Ошибка при выполнении AJAX-запроса');
}
});

В этом примере мы используем функцию $.ajax() из библиотеки jQuery для выполнения AJAX-запроса. После успешного выполнения запроса (в блоке success) мы вставляем полученные данные в элемент на странице с помощью $('#targetElement').html(data). Затем мы выполняем прокрутку окна к этому элементу с использованием $('html, body').animate(), где scrollTop устанавливает значение вертикальной прокрутки окна, и $('#targetElement').offset().top возвращает позицию элемента относительно верхней границы страницы, к которой мы выполняем прокрутку.