.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;
}
Любая помощь, которую вы могли бы дать мне по этому вопросу, будет очень признательна!