2

我有一个高度为几百像素的 DIV。当用户单击按钮时,我想确保当 Ajax 从服务器返回第二个视图时他们可以查看最顶部。

如果顶部当前不在视图中,我该如何制作它只会滚动到 DIV 的顶部?

例如,如果用户在页面上根本没有滚动,具有高分辨率并且可以查看整个 DIV,我不希望发生任何滚动。对于运行较低分辨率的用户,我想确保将它们发送到 DIV 的顶部,以便他们可以看到它。

4

2 回答 2

3

您可以使用这样的功能进行检查

现场演示

function checkIfInView(element){
    var offset = element.offset().top - $(window).scrollTop();

    if(offset > window.innerHeight){
        // Not in view
        $('html,body').animate({scrollTop: offset}, 1000);
        return false;
    }
   return true;
}​

您可以在要检查的 div 上的 ajax 函数之后调用它,如下所示

checkIfInView($('#testdiv'));
于 2012-09-12T16:35:06.380 回答
1

我认为这根本不需要任何jQuery东西。我会id在顶部放置 adiv并使用 url 中的名称重定向到divurl,这是一个示例:

<div id="top_div"></div>

重定向js

// similar behavior as clicking on a link
window.location.href = "url.com/#top_div";
于 2012-09-12T16:35:30.920 回答