diff --git a/gulpfile.js b/gulpfile.js index 4f1266d45..e4dcba592 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -133,6 +133,7 @@ const refactoredSrc = [ "./src/js/elements/new-version-notification.js", "./src/js/elements/mobile-test-config.js", "./src/js/elements/loading-page.js", + "./src/js/elements/scroll-to-top.js", "./src/js/popups/custom-text-popup.js", "./src/js/popups/pb-tables-popup.js", diff --git a/src/js/elements/scroll-to-top.js b/src/js/elements/scroll-to-top.js new file mode 100644 index 000000000..f02069272 --- /dev/null +++ b/src/js/elements/scroll-to-top.js @@ -0,0 +1,22 @@ +import * as UI from "./ui"; + +let visible = false; + +$(".scrollToTopButton").click((event) => { + window.scrollTo({ top: 0, behavior: "smooth" }); +}); + +$(window).scroll((e) => { + let page = UI.getActivePage(); + if (page == "pageTest") return; + if (page == "pageAbout" || page == "pageSettings" || page == "pageAccount") { + let scroll = window.scrollY; + if (!visible && scroll > 100) { + $(".scrollToTopButton").removeClass("invisible"); + visible = true; + } else if (visible && scroll < 100) { + $(".scrollToTopButton").addClass("invisible"); + visible = false; + } + } +}); diff --git a/src/js/global-dependencies.js b/src/js/global-dependencies.js index 2f382cce3..51a0b64b1 100644 --- a/src/js/global-dependencies.js +++ b/src/js/global-dependencies.js @@ -22,6 +22,7 @@ import "./input-controller"; import "./ready"; import "./about-page"; import "./pb-tables-popup"; +import "./scroll-to-top"; import * as Account from "./account"; import * as TestStats from "./test-stats"; import * as Replay from "./replay"; diff --git a/src/js/ui.js b/src/js/ui.js index 684b24808..0ad3ed3f9 100644 --- a/src/js/ui.js +++ b/src/js/ui.js @@ -269,10 +269,6 @@ $(".merchBanner .fas").click((event) => { // ); }); -$(".scrollToTopButton").click((event) => { - window.scrollTo({ top: 0, behavior: "smooth" }); -}); - $(document).on("click", "#bottom .leftright .right .current-theme", (e) => { if (e.shiftKey) { UpdateConfig.toggleCustomTheme(); diff --git a/static/index.html b/static/index.html index 19abccd58..7909ba394 100644 --- a/static/index.html +++ b/static/index.html @@ -1537,7 +1537,7 @@