Greasy Fork

scroll2078

navigation bar behavior based on scroll bar

当前为 2024-03-30 提交的版本,查看 最新版本

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

document.addEventListener('DOMContentLoaded', function () {
    const header = document.querySelector('.header');
    let lastScrollTop = 0;
    header.style.top = '-18px';

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

        let delta = scrollTop - lastScrollTop;

        if (delta > 0) {
            header.style.top = `-${header.offsetHeight}px`;
        } else if (scrollTop === 0) {
            header.style.top = '-18px';
        } else {
            let newTop = parseInt(header.style.top, 10) + Math.abs(delta);

            if (newTop > 0) newTop = 0;

            header.style.top = `${newTop}px`;
        }

        lastScrollTop = scrollTop;
    }

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