繁体   English   中英

滚动后如何使滚动到顶部按钮出现

[英]How to make scroll to top button appear after scrolling

这就是我在正文中包含按钮的方式:

<?php require_once('scrollToTop.php'); ?>

这是我的滚动 tTo Top.php 文件:

<div class="btnScrollToTop" data-scroll="up" type="button">
<img src="images/paudie_scroll_top_icon.jpg" alt="">

这是按钮的 CSS:

.btnScrollToTop {
    position: fixed;
    right: 20px;
    bottom: 20px;
    width: 50px;
    width: 50px;
    border: none;
    z-index: 99;
}

这是包含在 php 页脚中的我的 js 文件:

<script src="js/scroll.js"></script>

// JavaScript Document    
const btnScrollToTop = document.querySelector(".btnScrollToTop");

btnScrollToTop.addEventListener("click", function() {
    window.scrollTo({
        top: 0,
        left: 0,
        behavior: "smooth"
        });
        
    });

经过各种尝试后,我无法让他的按钮只出现一个,该按钮从页面顶部滚动 20 像素。

请帮忙。

要执行您需要的操作,您可以检索当前的 window 滚动条 position,检查它是否高于 20 并使用它来切换按钮的display state:

 const btnScrollToTop = document.querySelector(".btnScrollToTop"); // scroll to top of page when button clicked btnScrollToTop.addEventListener("click", e => { window.scrollTo({ top: 0, left: 0, behavior: "smooth" }); }); // toggle 'scroll to top' based on scroll position window.addEventListener('scroll', e => { btnScrollToTop.style.display = window.scrollY > 20? 'block': 'none'; });
 h3 { margin: 0 0 1000px; }.btnScrollToTop { position: fixed; right: 20px; bottom: 20px; width: 50px; border: none; z-index: 99; display: none; }
 <h3>Scroll down...</h3> <div class="btnScrollToTop" data-scroll="up" type="button"> <img src="images/paudie_scroll_top_icon.jpg" alt="Scroll to top" /> </div>

CSS:

.btnScrollToTop { 
  position: fixed; 
  right: 20px; 
  bottom: 20px; 
  width: 50px; 
  width: 50px; 
  border: none; 
  z-index: 99; 
  opacity: 0; 
}
.btnScrollToTop.active{  
  opacity: 1; 
}

JavaScript:

const btnScrollToTop = document.querySelector(".btnScrollToTop");
btnScrollToTop.addEventListener("click", function() { 
  window.scrollTo({ top: 0, left: 0, behavior: "smooth" }); 
}); 
window.addEventListener("scroll", () => { 
  if (window.pageYOffset > 100) { 
    btnScrollToTop.classList.add("active"); 
  } else { 
    btnScrollToTop.classList.remove("active"); 
  } 
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM