Ajax内容加载后滚动到顶部

问题描述 投票:12回答:4

无论如何,我可以做到这一点,以便在内容加载后(通过Ajax)页面自动滚动到顶部吗?

这是我用于显示内容的代码:

$(document).ready(function () {
    var my_layout = $('#container').layout();
    $("a.item_link").click(function () {
        $("#loader").fadeIn();

        feed_url = $(this).attr("href");
        $.ajax({
            type: "POST",
            data: "URL=" + feed_url,
            url: "view.php",
            success: function (msg) {
                $("#view-area").html(msg);

                $("#loader").fadeOut();
            }
        });
        return false;
    });
});

因此,在“查看区域”加载其内容之后,我可以使页面自动滚动到顶部吗?

php jquery html ajax
4个回答
27
投票

只需使用滚动功能

scrollTo(0);

如果您要使用jQuery,则为here is a good example with smoothing:)

从链接:

$('html, body').animate({ scrollTop: 0 }, 0);
//nice and slow :)
$('html, body').animate({ scrollTop: 0 }, 'slow');

放入代码中

...
        success: function (msg) {
            $("#view-area").html(msg);
            $("#loader").fadeOut();
            //Put code here like so
            $('html, body').animate({ scrollTop: 0 }, 0);
        }

3
投票

您可以进行$(window).scrollTop(0);


1
投票

所有ajax请求都具有回调参数,因此请使用scrollTop(0)。查看有关如何使用Ajax回调的jQuery文档。


0
投票

如果没有回调,请尝试绑定事件侦听器:

document.addEventListener(
    "load",
    function(event) {
        event.composedPath().forEach(function(dom) {
            if (dom.classList && dom.classList.value === "classOfLoadedContent") {
                $(".div-to-be-scrolled").scrollTop($(".content").innerHeight());
            }
        });
    },
    true
);
© www.soinside.com 2019 - 2024. All rights reserved.