1

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

我让 jquery 从 scrollTop 位置获取菜单的高度和子轨道。但是,高度不会在第一次单击时应用,只会在第一次单击后应用。

因此,如果 scrollTop 位置是 1442 并且菜单是 42 高,它首先滚动到 1442。如果我再次单击它,它会转到 1400。它应该在第一次单击时执行此 (1442-42) 计算。我检查并每次都设置存储高度的变量,但仅在第一次单击后应用:

$('#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);
});
4

0 回答 0