Greasy Fork

scroll2078

navigation bar behavior based on scroll bar

当前为 2024-04-01 提交的版本,查看 最新版本

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/491240/1352578/scroll2078.js

document.addEventListener('DOMContentLoaded', function () {
    const header = document.querySelector('.header');
    let lastScrollTop = 0;

    header.style.top = '-20px';

    function handleScroll() {
        let scrollTop = window.pageYOffset || document.documentElement.scrollTop;
        let delta = scrollTop - lastScrollTop;

        if (delta > 0) {
            navbar.style.top = '-52px';
        } else {

            let newTop = parseInt(navbar.style.top, -20) + Math.min(0, -52 + scrollTop);; // not sure here really

            if (newTop > 0) newTop = 0;

            navbar.style.top = `${navbarTop}px`;
        }

        lastScrollTop = scrollTop;
    }

    window.addEventListener('scroll', handleScroll);
});