在javascript或jquery中滚动到具有特定ID的html元素

时间:2011-08-29 22:43:36

标签: javascript jquery jquery-ui jquery-plugins scroll

我有分配了id的html元素。现在我想滚动到那些元素。我看到jQuery有一个scrollTop,它取一个整数值。我怎样才能轻松地创建一个id滚动到顶部的特定html元素?理想情况下,动画很漂亮。

快速搜索显示许多滚动插件...如果上述功能需要插件,那么最受欢迎的插件是什么?我也在使用jquery-ui。

2 个答案:

答案 0 :(得分:10)

您可以使用以下内容在页面加载时滚动到#someElement

$(document).ready(function() {
    $("html, body").animate({scrollTop: $("#someElement").offset().top}, 1000); 
});

它只是动画scrollTop元素的body属性,并使用某个特定元素的顶部偏移量作为要滚动的位置。动画持续1000毫秒。

注意:它会同时选择htmlbody,因此它适用于各种浏览器。我不确定具体细节,但一些快速测试显示Chrome使用body,但Firefox和IE使用html

这是working example

答案 1 :(得分:0)

请考虑以下代码段:

$('#myDiv').bind('click',function(){

    var pos = $(this).offset().top,
    scrollSpeed = 2;

    for (var i = pos; i > 0; i=i-scrollSpeed) {
        $(window).scrollTop(i);
    }
}); 

例如,它在点击时滚动绑定到#myDiv元素。代码确定#myDiv元素的位置,而不是计算滚动步数(速度/平滑度)。比jQuery .scrollTop()还要好。