代码之家  ›  专栏  ›  技术社区  ›  HTMLNerd_1

如何制作一个只有当我在页面上向下滚动一点时才会出现的返回页首按钮?[已关闭]

  •  -2
  • HTMLNerd_1  · 技术社区  · 2 年前

    我知道如何制作一个返回顶部的按钮,但如何只在我稍微向下滚动时显示它。有人知道如何做到这一点吗?

    3 回复  |  直到 2 年前
        1
  •  -1
  •   David Teo    2 年前

    这里有一个你可以尝试的解决方案。

    window.onscroll = function() {scrollFunction()};
    
    function scrollFunction() {
      const backToTopBtn = document.getElementById("backToTopBtn");
      if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
        backToTopBtn.classList.add("show");
      } else {
        backToTopBtn.classList.remove("show");
      }
    }
    
    function scrollToTop() {
      document.body.scrollTop = 0;
      document.documentElement.scrollTop = 0;
    }
    #backToTopBtn {
      display: none;
      position: fixed;
      bottom: 20px;
      right: 20px;
      opacity: 0;
      transition: opacity 0.3s ease-in-out;
    }
    
    #backToTopBtn.show {
      display: block;
      opacity: 1;
    }
    <button id="backToTopBtn" onclick="scrollToTop()">Back to Top</button>
        2
  •  -1
  •   Ahmed Ouhssini    2 年前

    试试这个

    let go_to_top = document.querySelector(".go-top");
    
    // functions occure win scrolliong 
    window.onscroll= function(){
          if(scrollY<=520){
            go_to_top.style.display="none";
          }
          else {
            go_to_top.style.display="flex";
          }
    }
    //go to top 
    function go_top(){
      window.scrollTo(0,0);
    }
      <div class="go-top" onclick="go_top()">
          <i class="fa-solid fa-arrow-up"></i>
       </div>
        3
  •  -1
  •   Aaron Bigeleisen    2 年前

    CSS:

    #scrollTop {
        display: none;
        position: fixed;
        cursor: pointer;
        transition: 1s;
        text-decoration: none;
        background-color: green;
    }
    
    #scrollTop:hover {
        transition: 1s;
        background-color: lightgreen;
    }
    
    #scrollTop:active {
        background-color: greenyellow;
    }
    

    JS:

    var scrollTop = document.getElementById("scrollTop");
    
    window.onscroll = function(){
        scrollfunction()
    };
    function scrollfunction(){
        if( document.body.scrollTop > 20 || document.documentElement.scrollTop > 20){
            scrollTop.style.display = "block";
        } else {
            scrollTop.style.display = "none";
        }
    }
    
    scrollTop.addEventListener("click", function(){
        window.scrollTo({
            left: 0,
            top: 0,
            behavior: "smooth"
        })
    })
    

    HTML:

    <body>
      <div class="content">
          your content here
      </div>
    </body>
    
    <button id="scrollTop">
       <i class=""></i>
    </button>