37 lines
1.1 KiB
JavaScript
37 lines
1.1 KiB
JavaScript
|
|
const scrollToTopBtn = document.querySelector(".lw-scroll-top-btn");
|
||
|
|
|
||
|
|
if (scrollToTopBtn) {
|
||
|
|
const totalPageHeight = document.body.scrollHeight;
|
||
|
|
let currentPageHeight = window.scrollY;
|
||
|
|
const rootElement = document.documentElement;
|
||
|
|
|
||
|
|
const fadeScrollTopBtn = (total, current) => {
|
||
|
|
if (total / 3 < current) {
|
||
|
|
!scrollToTopBtn.classList.contains("lw-scroll-top-btn--active")
|
||
|
|
? scrollToTopBtn.classList.add("lw-scroll-top-btn--active")
|
||
|
|
: null;
|
||
|
|
} else {
|
||
|
|
scrollToTopBtn.classList.contains("lw-scroll-top-btn--active")
|
||
|
|
? scrollToTopBtn.classList.remove("lw-scroll-top-btn--active")
|
||
|
|
: null;
|
||
|
|
}
|
||
|
|
};
|
||
|
|
|
||
|
|
fadeScrollTopBtn(totalPageHeight, currentPageHeight);
|
||
|
|
|
||
|
|
const onScrollShowBtn = () => {
|
||
|
|
fadeScrollTopBtn(totalPageHeight, window.scrollY);
|
||
|
|
};
|
||
|
|
|
||
|
|
window.addEventListener("scroll", onScrollShowBtn);
|
||
|
|
|
||
|
|
function scrollToTop() {
|
||
|
|
rootElement.scrollTo({
|
||
|
|
top: 0,
|
||
|
|
behavior: "smooth",
|
||
|
|
});
|
||
|
|
}
|
||
|
|
scrollToTopBtn.addEventListener("click", scrollToTop);
|
||
|
|
}
|
||
|
|
|