滚动到元素后如何防止滚动到顶部

时间:2014-07-14 15:41:23

标签: jquery html scrolltop

也许是新手问题,但我真的很困惑。我有代码,应该在页面上导航我。我有" abc"导航部分,当我点击任何字母时,页面滚动到字母的部分。当我点击另一个字母时,页面滚动到顶部。为什么会这样?

$('#abc li').on('click',function (e) {
    e.preventDefault();
    var target = $("#"+$(this).text());
if(target.offset()){
    var offs = target.offset().top;
    console.log(target, offs);
    if ($(this).hasClass('pressed')) {
        return false;
    } else {
        $('.pressed').removeClass('pressed');
        $('#needToScroll').animate({scrollTop: offs - 115}, 400);
    }
    $(this).addClass('pressed');
}
else{
    console.log('undef sel');
} });

我已经掌握了这个here。请别人解释一下。

1 个答案:

答案 0 :(得分:0)

offset()返回相对偏移量。您需要考虑已经滚动的金额。见这里:jquery offset values changes by scrolling the page