也许是新手问题,但我真的很困惑。我有代码,应该在页面上导航我。我有" 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。请别人解释一下。
答案 0 :(得分:0)
offset()
返回相对偏移量。您需要考虑已经滚动的金额。见这里:jquery offset values changes by scrolling the page