1
0
Fork 0
mirror of https://github.com/Kozea/Radicale.git synced 2025-06-26 16:45:52 +00:00

Fix navigation on Android Chrome

This commit is contained in:
Unrud 2020-03-23 20:49:08 +01:00
parent 8fb12bbc49
commit ed54787e8c
4 changed files with 27 additions and 9 deletions

View file

@ -0,0 +1,17 @@
window.addEventListener("load", function() {
for (let link of document.querySelectorAll("nav a")) {
link.addEventListener("click", function() {
let fragmentIndex = link.href.indexOf("#");
let anchor = null;
if (fragmentIndex >= 0) {
let fragment = link.href.substring(fragmentIndex + 1, link.href.length);
anchor = document.getElementById(fragment);
}
if (anchor) {
document.documentElement.scrollTop += anchor.getBoundingClientRect().y;
} else {
document.documentElement.scrollTop = 0;
}
});
}
});

View file

@ -15,7 +15,7 @@ window.addEventListener("load", function() {
for (let section of document.querySelectorAll("section")) { for (let section of document.querySelectorAll("section")) {
let id = section.getAttribute("id"); let id = section.getAttribute("id");
let link = nav.querySelector("a[href=\\#" + id.replace(/\//g, "\\/") + "]"); let link = nav.querySelector("a[href=\\#" + id.replace(/\//g, "\\/") + "]");
if (link !== null) { if (link) {
link = link.parentElement; link = link.parentElement;
link.classList.remove("active"); link.classList.remove("active");
sections.push([section, link]); sections.push([section, link]);
@ -43,13 +43,12 @@ window.addEventListener("load", function() {
} }
link = link.parentElement; link = link.parentElement;
} }
if (link === null) { if (link) {
nav.scrollTop = 0;
} else {
let topLink = link.getBoundingClientRect().y; let topLink = link.getBoundingClientRect().y;
let topNav = nav.getBoundingClientRect().y; let topNav = nav.getBoundingClientRect().y;
let y = nav.scrollTop + topLink - topNav - 10; nav.scrollTop += topLink - topNav - 10;
nav.scrollTo(0, y); } else {
nav.scrollTop = 0;
} }
} }
function resizeNav() { function resizeNav() {

View file

@ -19,15 +19,16 @@ header .logoContainer, header ul, main {
nav { nav {
position: fixed; position: fixed;
width: 0; width: 100vw;
height: 100vh; height: 100vh;
top: 0; top: 0;
left: 0; left: 0;
background-color: #E4E9F6; background-color: #E4E9F6;
z-index: 1; z-index: 1;
transition: width ease .2s;
max-height: initial !important; max-height: initial !important;
margin: 0; margin: 0;
transform: translate(-100vw);
transition: transform ease .2s;
} }
html.nav-opened { html.nav-opened {
@ -35,7 +36,7 @@ html.nav-opened {
} }
.nav-opened nav { .nav-opened nav {
width: 100vw; transform: translate(0);
} }
main, .navContainer { main, .navContainer {

View file

@ -20,6 +20,7 @@ $endif$
<script src="assets/navigation.js"></script> <script src="assets/navigation.js"></script>
<script src="assets/document-branches.js"></script> <script src="assets/document-branches.js"></script>
<script src="assets/narrow-menu.js"></script> <script src="assets/narrow-menu.js"></script>
<script src="assets/navigation-scroll-fix.js"></script>
<script> <script>
const documentBranch = "$branch$"; const documentBranch = "$branch$";
const documentBranches = ["$for(branches)$$branches$$sep$", "$endfor$"]; const documentBranches = ["$for(branches)$$branches$$sep$", "$endfor$"];