Задать вопрос
mscrack
@mscrack

Бесконечная прокрутка, не работает замена url что не так?

Всем привет. Нужна помощь по следующему вопросу. Суть задачи в том что нужно реализовать бесконечную прокрутку, т.е. зашли вы в какую то новость/статью долистали до конца и подгружается другая статья полностью, пролистали ниже подгрузилась еще одна и так до бесконечности. Ну и при этом должна меняться ссылка в браузере как будто бы человек зашел на текущую статью которую смотрит.. На данный момент реализовано следующее. Если зайти на статью и пролистать вниз подгружается следующая и ссылка меняется, но после если пролистать ниже ссылка не работает.. я так понял это из за того что я прохожу циклом по записям а на тот момент ее не существует.. как поправить?

определяем текущий блок
var checkBlocks = function(sc, wh) {
                var find = false;

                getObject("[data-seotitle]").each(function() {
                    var $block = $(this);
                    if(sc >= ($block.data("top") - 80 - settings.offsetTop) && sc <= ($block.data("bottom") + 80 - settings.offsetTop)) {
                        if(!$block.data("current")) {
                            getObject("[data-seotitle]").data("current", false);
                            $block.data("current", true);
                            setBlock({
                                title: $block.data("seotitle"),
                                keywords: $block.data("seokeywords"),
                                description: $block.data("seodescription"),
                                url: $block.data("seourl")
                            });
                        }
                        find = true;
                        states.isDefault = false;
                        return false;
                    }
                });
                if(!find && !states.isDefault) {
                    setBlock(seoDefaults);
                    states.isDefault = true;
                }
            };


// Проверка блоков при скроллирование и в начале
        landingSeo.getObject("window").on("scroll", function() {
            var sc = parseInt(landingSeo.getObject("window").scrollTop()),
                wh = parseInt(landingSeo.getObject("window").height());

            landingSeo.checkBlocks(sc, wh);
        });


разметка выглядит так
<section class="item content_inner_page news_article_page" style="display: inline-block;" data-key="75212" data-seotitle="title" data-seourl="link">
код
</section>


Код js не мой, взял отсюда
https://github.com/goodcode1/LandingSeo
  • Вопрос задан
  • 421 просмотр
Подписаться 2 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 1
@BorisKorobkov Куратор тега PHP
Web developer
Если у вас не работает чужой скрипт - обращайтесь к его автору.
Или используйте другой скрипт. Например, https://webmasters.googleblog.com/2014/02/infinite...
Ответ написан
Ваш ответ на вопрос

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

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