Ajax скроллинг и кнопка назад в браузере

289
29 сентября 2017, 20:15

Всем привет, имею такой код:

    if (localStorage.getItem("windowscrolltopr") !== null) { 
        var windowscrolltop = localStorage.getItem('windowscrolltopr'); 
        $('html, body').animate({ 
            scrollTop: windowscrolltop 
        }, 900); 
        $(window).scroll(function () { 
            console.log(windowscrolltop); 
            if ($(window).scrollTop() > $(document).height() - $(window).height() - 600) { 
                $.ajax({    //create an ajax request to load_page.php 
                    type: "GET", 
                    url: "/getnews.php", 
                    dataType: "html",   //expect html to be returned 
                    data: { 
                        lang: lng, 
                        last_id: $('#news-list div.article-item').last().attr('data-time'), 
                        ids: $('#news-list div.article-item').last().attr('data-news') 
                    }, 
                    success: function (response) { 
                        var content = document.getElementById("news-list"); 
                        content.innerHTML = content.innerHTML + response; 
                    }, 
                    error: function (jqXHR, textStatus, errorThrown) { 
                        console.log(textStatus, errorThrown); 
                    } 
 
                }); 
            } 
        }); 
    } 
 
 
 
$("#more-news").on('click', function () { 
    $.ajax({    //create an ajax request to load_page.php 
        type: "GET", 
        url: "/getnews.php", 
        dataType: "html",   //expect html to be returned 
        data: { 
            lang: lng, 
            last_id: $('#news-list div.article-item').last().attr('data-time'), 
            ids: $('#news-list div.article-item').last().attr('data-news') 
        }, 
        success: function (response) { 
            var content = document.getElementById("news-list"); 
            content.innerHTML = content.innerHTML + response; 
        }, 
        error: function (jqXHR, textStatus, errorThrown) { 
            console.log(textStatus, errorThrown); 
        } 
 
    }); 
    localStorage.setItem('windowscrolltopr',$(window).scrollTop()); 
    $('html, body').animate({ 
        scrollTop: $('#more-news').offset().top - 90 
    }, 900); 
});

При нажатии на кнопку еще, у меня выгружается контент, когда пользователь кликает на новость и переходит читать ее, то js не понимает, что если он нажмет на кнопку назад, то он захочет вернутся на ту новость, где скролил. Я попытался сделать это все при помощи localStorage, но у меня не получается именно определить если он нажал кнопку назад и только тогда грузить контент и возвращать его в ту точку, где он был, есть идеи?

READ ALSO
фиксация блока по координате вертикали

фиксация блока по координате вертикали

У меня на сайте присутствует боковое меню которое должно фиксироваться при вертикальном скроллинге страницы, я решил эту проблему следующим...

214
Slick responsive

Slick responsive

Имею такую конструкцию:

211