@moiseev1788

Как сохранить последний элемент и доскролить дон него?

Странице есть пагинация (кнопка показать еще), которая подгружает блоки каждый раз.

Есть вот такой код подзагрузки. Сейчас на данный момент подзагрузка работает, но по клику на кнопку страница скролится в самый вверх, а не к последнему элементу который загружен. Как сохранить последний блок, загрузить контент и проскролить до него. Пример по ссылке: https://tvoidv.ru/culture/

$(document).on('click', '#more-news', function(e) {
    e.preventDefault();
    var _url = $(this).attr('data-url');
    send = false; //убираем шумы
    if (_url && !send) {
        $.ajax({ 
            url: _url,
            type: 'GET',
            dataType: 'json',
            beforeSend: function() {
                // включение прелоудера
                send = false;
            },
            complete: function() {
                // отключение прелоудера
            }, 
            success: function(obj) { 
                send = true;

                $(".news-grid-list__mb").last() //Возвращаем последний div-элемент с классом news-grid-list__mb.

                $('#more-news').remove(); //удаляем текущю кнопку
                $("#get_news").append(obj['html'])//добавляе  готвую разметку

                $('html, body').animate({
                    scrollTop: $(".news-grid-list__mb").offset().top   //Скролл
                }, 1000); 

                if('show_more' == true){
                    $('#more-news').show();
                } else {
                    $('#more-news').hide();
                } //добавляем кнопку если пришел флаг
            },
            error: function(xhr, ajaxOptions, thrownError) {
                console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText + "\r\n" + xhr);
            }
        });
    }
});
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
Benzin102
@Benzin102
Shitcoder
У них и скопировал бы
var element = $('#more-news').get(0)
    element.scrollIntoView({ behavior: "smooth", block: "end", inline: "nearest" });
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы