[英]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.