我正在创建一个页面的网站,该页面使用指向页面中各个部分的特定ID的链接进行滚动,但是重新加载页面后,页面会自动向下滚动至底部(尽管并非每次都如此,有时粘性菜单会消失并且页面会移动一点点。)
我看不到任何JS / jQuery函数这样做。我不想使用window.scrollTo(0,0);
,因为(显然)在重新加载时它不会停留在同一部分。
还有没有想到的其他问题吗?
我的导航:
var $navigationLinks = $('#navigation > a');
var $sections = $($(".section").get().reverse());
var menuHeight = document.getElementById('main-menu').offsetHeight;
var sectionIdTonavigationLink = {};
$sections.each(function() {
var id = $(this).attr('id');
sectionIdTonavigationLink[id] = $('#navigation > a[href=\\#' + id + ']');
});
function highlightNavigation() {
var scrollPosition = $(window).scrollTop()+ menuHeight;
$sections.each(function() {
var currentSection = $(this);
var sectionTop = currentSection.offset().top;
if (scrollPosition >= sectionTop) {
var id = currentSection.attr('id');
var $navigationLink = sectionIdTonavigationLink[id];
if (!$navigationLink.hasClass('active')) {
$navigationLinks.removeClass('active');
$navigationLink.addClass('active');
}
return false;
}
});
}
粘性菜单:
window.onscroll = function() {myFunction()};
var navbar = document.getElementById("main-menu");
var sticky = navbar.offsetTop;
function myFunction() {
if (window.pageYOffset >= sticky) {
navbar.classList.add("sticky")
} else {
navbar.classList.remove("sticky");
}
}