如何防止每次加载页面时滚动到末尾?

时间:2019-03-29 10:22:55

标签: javascript jquery html5

我正在创建一个页面的网站,该页面使用指向页面中各个部分的特定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");
    }
}

0 个答案:

没有答案