3

解決方法がわからないという奇妙な問題があり、皆さんが助けてくれるかどうか疑問に思っていました。

背景のビット: 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;
}​

この問題についてあなたが私に与えることができるどんな助けも本当に感謝しています!

4

0 に答える 0