.offset (). top возвращает неправильное значение

У меня странная проблема, которую я не знаю, как решить, и мне было интересно, если вы, ребята, могли бы помочь.

Немного предыстории: меня попросили создать систему, в которой подстраницы страницы в WordPress загружаются в конце этой страницы в бесконечной прокрутке. Это работает правильно.

Они также хотят, чтобы верхние навигационные ссылки загружали весь контент, включая страницу, на которую они нажали, и затем прокручивали до нее.

Если я прокручиваю вниз (загружаю страницы) и затем нажимаю верхнюю навигационную ссылку, прокрутка работает правильно. Однако, если я не загружу дополнительные страницы перед тем, как щелкнуть одну из ссылок, страницы загрузятся, и начнется прокрутка, но до остановки останется только часть пути. Это связано с тем, что offset (). Top указывает неверное значение. Мой вопрос почему?

function ajaxloadnscroll(index) {

    //If the page has already been loaded then just scroll to it
    if (pages[index].loaded) {
        $('html, body').animate({
            scrollTop: $("#" + pages[index].name).offset().top
        }, 2000);
        return;
    }

    //Loop through pages up to one clicked.
    for (i = 0; i <= index; i++) {


        current = i;
        if (!pages[current].loaded) {
            $.ajax({
                url: pages[i].url,
                async: false,
                context: document.body,
                success: function(data) {
                    if (data) {
                        $("#tempload").before(data);
                        pages[current].loaded = true;

                        if (current == index) {
                            $('html, body').animate({
                                scrollTop: $("#" + pages[current].name).offset().top
                            }, 2000);
                        }

                    }
                }
            });
        }
    }

    //Increment current in order to load next page object on scroll.
    current++;
    return false;
}​

Любая помощь, которую вы могли бы дать мне по этому вопросу, будет очень признательна!

Ответы на вопрос(0)

Ваш ответ на вопрос