滚动到div - jquery - 具体位置

use*_*462 2 javascript jquery scroll

我正在尝试这段代码:

  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"));           
    });
Run Code Online (Sandbox Code Playgroud)

问题是当我点击列表的特定元素时,滚动会上升到窗口的顶部.但在我的情况下,我在顶部有一个固定的div,所以内容被这个div隐藏.好吧,我想在div之前停止滚动.

任何的想法?

演示

Kat*_*ato 5

您需要为顶部栏指定一个id(例如id ="header"),然后从scrollTop属性中减去该值:

$('html,body').animate({
    scrollTop: ($("#"+id).offset().top-$('#header').outerHeight(true))+'px'},
    'slow');
Run Code Online (Sandbox Code Playgroud)

这是一个有效的例子.