我正在尝试这段代码:
function goToByScroll(id){
id = id.replace("link", "");
$('html,body').animate({
scrollTop: $("#"+id).offset().top},
'slow');
}
$("#sidebar > ul > li > a").click(function(e) {
e.preventDefault();
goToByScroll($(this).attr("id"));
});
问题是,当我点击列表的特定元素时,滚动会上升到窗口的顶部。但在我的情况下,我在顶部有一个固定的div,所以内容被这个div隐藏。好吧,我想在div之前停止滚动。
任何想法?
答案 0 :(得分:5)
您需要为顶部栏指定一个ID(例如id =“header”),然后从scrollTop属性中减去该值:
$('html,body').animate({
scrollTop: ($("#"+id).offset().top-$('#header').outerHeight(true))+'px'},
'slow');
答案 1 :(得分:4)
function goToByScroll(id){
id = id.replace("link", "");
$('html,body').animate({
scrollTop: ($("#"+id).offset().top - $("#YOUR_FIXED_DIV").height() ) },
'slow');
}
$("#sidebar > ul > li > a").click(function(e) {
e.preventDefault();
goToByScroll($(this).attr("id"));
});