Skip to content

Sticky吸顶监控

指南

由于css定位 position:sticky 没有类似于 :sticky的伪类选择器,但是可以通过js事件获取到。

代码

直接上代码:

javascript
var primaryHeader = null;
var scrollWather = null;
// 滚动条监控函数
window.onscroll = function () {
    if (primaryHeader == null) {
        primaryHeader = document.querySelector('#top');
        scrollWather = document.createElement("div");
        scrollWather.setAttribute('data-scroll-watcher', '');
        primaryHeader.before(scrollWather);
    }

    const navObserver = new IntersectionObserver((entries) => {
        primaryHeader.classList.toggle('sticking', !entries[0].isIntersecting);
    }, {rootMargin: "72px 0px 0px 0px"});

    navObserver.observe(scrollWather);
};

其中 #top 为要吸顶的div。