我有一个页面可以根据选择的菜单项滚动到某个点。当页面滚动时,菜单与页面保持一致。问题是固定菜单悬停在我需要用户查看的部分部分上。
我让 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);
});