小程序类似sticky定位制作上滑吸底

577 阅读1分钟

这次需求中,遇到个在屏幕内正常显示,用户上滑(即 屏幕下滑)按钮超出一屏之外吸底的需求,第一反应肯定是粘性定位,但是实际发现粘性定位只满足用户上滑 按钮吸顶,下滑按钮吸底的情况,最后发现了一种解决方案

image.png 正常显示

实际需求 按钮在最上侧消失时吸底

image.png

 // 监听按钮
    initObserver () {
        this.observer = my
            .createIntersectionObserver()
            .relativeToViewport({ top: 0, bottom: 0 })
            .observe(".img10", (res) => {
                if (res.intersectionRatio) {
                    // 隐藏按钮 显示吸底
                    this.setData({
                        fixedShow: false
                    });
                } else {
                    this.setData({
                        fixedShow: true
                    });
                }
            });
    },

createIntersectionObserver 通过监听事件,拿到DOM节点,判断他的属性和容器之间的关系,写两个按钮盒子,一个隐藏一个显示,判断div和视觉容器的关系展示其中一个就可以达到效果。