Jquery scrollTop只在第二次点击时获得高度偏移?

时间:2013-07-02 22:08:13

标签: jquery position offset scrolltop

我有一个页面根据选择的菜单项滚动到一个点。当页面滚动时,菜单保留在页面中。问题是固定菜单悬停在我需要用户看到的部分部分上。

我正在让jquery获取菜单的高度并从scrollTop位置进行子记录。但是,第一次点击时不会应用高度,只会在第一次点击后点击。

因此,如果scrollTop位置为1442并且菜单为42高,则首先滚动到1442.如果我再次单击它将转到1400.它应该在第一次单击时执行此计算(1442-42)。我检查了每次存储hight的变量,但只在第一次点击后才应用:

$('#page-nav li').click(function(){
    var selectedPageMenu = $(this).index();
    var pageMenuHeight = $('#page-nav').height();
    var topPos = $('.about-section:eq('+selectedPageMenu+')').position().top - pageMenuHeight;
    $('body').stop().animate({scrollTop: topPos},1000);
});

0 个答案:

没有答案