我有分配了id的html元素。现在我想滚动到那些元素。我看到jQuery有一个scrollTop,它取一个整数值。我怎样才能轻松地创建一个id滚动到顶部的特定html元素?理想情况下,动画很漂亮。
快速搜索显示许多滚动插件...如果上述功能需要插件,那么最受欢迎的插件是什么?我也在使用jquery-ui。
答案 0 :(得分:10)
您可以使用以下内容在页面加载时滚动到#someElement
:
$(document).ready(function() {
$("html, body").animate({scrollTop: $("#someElement").offset().top}, 1000);
});
它只是动画scrollTop
元素的body
属性,并使用某个特定元素的顶部偏移量作为要滚动的位置。动画持续1000毫秒。
注意:它会同时选择html
和body
,因此它适用于各种浏览器。我不确定具体细节,但一些快速测试显示Chrome使用body
,但Firefox和IE使用html
。
答案 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()还要好。