使用jQuery在特定点加载页面(没有动画!)

时间:2014-02-11 07:14:05

标签: javascript jquery css hash scroll

我想在我的页面上的特定div加载页面,而不需要动画到那一点。以下是我现在正在使用的代码,它代表div的动画。我还没有能够弄清楚如何在没有动画的情况下完成同样的功能。

jQuery的:

if(window.location.hash) {
    var hash = window.location.hash;
    var link = $("[href='"+ hash +"']");
    if ( hash == "#specific-url" ) {
        $('html, body').animate({
            scrollTop: $("#specific-div").offset().top
        }, 1000);
}

2 个答案:

答案 0 :(得分:3)

而不是:

 $('html, body').animate({
        scrollTop: $("#specific-div").offset().top
    }, 1000);

这样做:

$(document).scrollTop($("#specific-div").offset().top);

在您的代码中,您试图为文档的html,body设置动画,因此当您想要移动到文档中的特定位置时,我认为您可以直接将文档的.scrollTop()设置为我上面向你建议的方式。

答案 1 :(得分:2)

单行设置animate时间0 ms

if(window.location.hash) {
    var hash = window.location.hash;
    var link = $("[href='"+ hash +"']");
    if ( hash == "#specific-url" ) {
        $('html, body').animate({
            scrollTop: $("#specific-div").offset().top
        }, 0);
}

<小时/> 您可以使用

.scrollTop()

$(document).scrollTop($("#specific-div").offset().top);

<小时/> .scrollIntoView()

$("#specific-div")[0].scrollIntoView(true);

document.getElementById(specific-div).scrollIntoView(true);