From f78f1355050721324997a80aae6e4ad05d6f131d Mon Sep 17 00:00:00 2001 From: Josh Date: Tue, 12 Jan 2021 17:34:54 +1000 Subject: [PATCH] [matrix] Add scroll to top button --- docs/_static/custom.js | 12 ++++++++++++ docs/_static/style.css | 33 +++++++++++++++++++++++++++++++++ docs/_templates/layout.html | 4 ++++ 3 files changed, 49 insertions(+) diff --git a/docs/_static/custom.js b/docs/_static/custom.js index 1274b4059292..f3cfa461fb39 100644 --- a/docs/_static/custom.js +++ b/docs/_static/custom.js @@ -5,6 +5,7 @@ let bottomHeightThreshold, sections; let hamburgerToggle; let mobileSearch; let sidebar; +let toTop; class Modal { constructor(element) { @@ -49,12 +50,19 @@ class SearchBar { } +function scrollToTop() { + window.scrollTo({ top: 0, behavior: 'smooth' }); +} + document.addEventListener('DOMContentLoaded', () => { mobileSearch = new SearchBar(); bottomHeightThreshold = document.documentElement.scrollHeight - 30; sections = document.querySelectorAll('section'); hamburgerToggle = document.getElementById('hamburger-toggle'); + + toTop = document.getElementById('to-top'); + toTop.hidden = !(window.scrollY > 0); if (hamburgerToggle) { hamburgerToggle.addEventListener('click', (e) => { @@ -76,6 +84,10 @@ document.addEventListener('DOMContentLoaded', () => { // insert ourselves after the element parent.insertBefore(table, element.nextSibling); }); + + window.addEventListener('scroll', () => { + toTop.hidden = !(window.scrollY > 0); + }); }); document.addEventListener('keydown', (event) => { diff --git a/docs/_static/style.css b/docs/_static/style.css index c9385bbf6ec6..96d5ab0a6394 100644 --- a/docs/_static/style.css +++ b/docs/_static/style.css @@ -97,6 +97,8 @@ Historically however, thanks to: --rtd-ad-background: var(--grey-2); --rtd-ad-main-text: var(--grey-6); --rtd-ad-small-text: var(--grey-4); + --rtd-version-background: #272525; + --rtd-version-main-text: #fcfcfc; --attribute-table-title: var(--grey-6); --attribute-table-entry-border: var(--grey-3); --attribute-table-entry-text: var(--grey-5); @@ -576,6 +578,37 @@ div.modal input { cursor: pointer; } +/* scroll to top button */ + +#to-top { + position: fixed; + bottom: 50px; + right: 20px; + + cursor: pointer; +} + +#to-top.is-rtd { + bottom: 90px; +} + +#to-top > span { + display: block; + + width: auto; + height: 30px; + padding: 0 6px; + + background-color: var(--rtd-version-background); + color: var(--rtd-version-main-text); +} + +#to-top span { + line-height: 30px; + font-size: 90%; + text-align: center; +} + /* copy button */ .relative-copy { diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html index 1d6de6d3f374..2fbf515952ce 100644 --- a/docs/_templates/layout.html +++ b/docs/_templates/layout.html @@ -190,5 +190,9 @@

+ +