美文网首页
实现滑动滚动条,导航栏消失和复现的效果

实现滑动滚动条,导航栏消失和复现的效果

作者: 变量只提升声明不提升赋值 | 来源:发表于2021-02-27 18:02 被阅读0次

    首先要做的就是监听滚动条的位置。然后通过位置来改变顶部导航栏的距离

    此代码是基于vue写的,所以开始现在mounted里面去给浏览器添加scorll监听
    
     data() {
        return {
          scrollTop: 0,
        };
      },
     mounted() {
        window.addEventListener("scroll", this.btn_pos);
      },
    

    逻辑部分

    btn_pos() {
          let scrollTop =
            document.body.scrollTop || document.documentElement.scrollTop;
          if (scrollTop > 300) {
            $(".top").show(500);
          } else {
            $(".top").hide(500);
          }
          if (this.scrollTop < scrollTop) {
            if (scrollTop > 100) {
              if (scrollTop > 200) {
                $(".header").css("top", "-72px");
                this.scrollTop = scrollTop;
              } else {
                $(".header").css({
                  background: "rgba(0,0,0,.8)",
                });
                this.scrollTop = scrollTop;
              }
            } else {
              $(".header").css("top", "0px");
              $(".header").css({
                background: "rgba(0,0,0,.8)",
              });
              this.scrollTop = scrollTop;
            }
          } else {
            if (this.scrollTop < 50) {   //小于50则说明快到顶了,这个时候就需要去掉之前加深的背景色,让他恢复原来的样子
              $(".header").css("top", "0");
              $(".header").css({
                background: "none",
              });
            } else {  
              $(".header").css("top", "0");
              $(".header").css({
                background: "rgba(0,0,0,.8)",
              });
            }
            this.scrollTop = scrollTop;
          }
        },
    

    每次做出滚动条发生改变之后,都要记录下来。这样就可以帮助我们去实现,浏览到一半,往上滚动,出现导航栏的效果。 首先判断我们记录的滚动条的值是不是大于当前滚动条的值。如果大于,则说明当前用户正在执行往上滚动滚动条的操作。这个时候就需要让导航栏出现。
    如果小于,则说明用户此时正处在往下浏览网页的时候。 这个时候就可以把导航栏给收起来。这里我多判断了一次scrollTop是不是大于100,因为网页样式的问题,在滚动条只往下滚了一点点的时候,不收起导航栏,只是加深一点背景色。具体可自行调整。

    代码有些冗余,可以精简一下。

    相关文章

      网友评论

          本文标题:实现滑动滚动条,导航栏消失和复现的效果

          本文链接:https://www.haomeiwen.com/subject/cuyifltx.html