2017-02-26 82 views
1

我想完成我的投资组合,但是当我点击我的导航栏中的列表元素时,它将我带到我想去的地方,但是当我点击同样的元素再次让我回到顶端。我认为这是因为jQuery滚动到href并且在list元素中我有一个href锚点。我怎样才能阻止呢?双击李元素jQuery滚动到屏幕顶部

jQuery的 -

$('a').click(function(){ 
    $('html, body').animate({ 
     scrollTop: $('[name="' + $.attr(this, 'href').substr(1) + '"]').offset().top 
    }, 500); 
    }); 

JSFiddle.

回答

0

我认为,问题是,你还没有占到窗口的当前滚动位置。

当您滚动到其中一个部分时,其$.offset().top为0,即使它不在页面的顶部,但它位于屏幕的顶部。

将当前滚动条位置的scrollTop功能为我工作:

$('a').click(function(){ 

    var scrollToName = $(this).attr("href").substr(1); 
    var scrollTo = $("body").scrollTop() + $('[name="' + scrollToName + '"]').offset().top; 

    $('html, body').animate({ 
     scrollTop: scrollTo 
    }, 500); 
}); 

这里是fiddle

+0

伟大的工作,谢谢! – blake