aboutsummaryrefslogtreecommitdiffhomepage
path: root/book.js
diff options
context:
space:
mode:
Diffstat (limited to 'book.js')
-rw-r--r--book.js47
1 files changed, 31 insertions, 16 deletions
diff --git a/book.js b/book.js
index 351e28c..aa12e7e 100644
--- a/book.js
+++ b/book.js
@@ -441,7 +441,7 @@ function playground_text(playground, hidden = true) {
})();
(function sidebar() {
- var html = document.querySelector("html");
+ var body = document.querySelector("body");
var sidebar = document.getElementById("sidebar");
var sidebarLinks = document.querySelectorAll('#sidebar a');
var sidebarToggleButton = document.getElementById("sidebar-toggle");
@@ -449,8 +449,8 @@ function playground_text(playground, hidden = true) {
var firstContact = null;
function showSidebar() {
- html.classList.remove('sidebar-hidden')
- html.classList.add('sidebar-visible');
+ body.classList.remove('sidebar-hidden')
+ body.classList.add('sidebar-visible');
Array.from(sidebarLinks).forEach(function (link) {
link.setAttribute('tabIndex', 0);
});
@@ -471,8 +471,8 @@ function playground_text(playground, hidden = true) {
});
function hideSidebar() {
- html.classList.remove('sidebar-visible')
- html.classList.add('sidebar-hidden');
+ body.classList.remove('sidebar-visible')
+ body.classList.add('sidebar-hidden');
Array.from(sidebarLinks).forEach(function (link) {
link.setAttribute('tabIndex', -1);
});
@@ -483,14 +483,14 @@ function playground_text(playground, hidden = true) {
// Toggle sidebar
sidebarToggleButton.addEventListener('click', function sidebarToggle() {
- if (html.classList.contains("sidebar-hidden")) {
+ if (body.classList.contains("sidebar-hidden")) {
var current_width = parseInt(
document.documentElement.style.getPropertyValue('--sidebar-width'), 10);
if (current_width < 150) {
document.documentElement.style.setProperty('--sidebar-width', '150px');
}
showSidebar();
- } else if (html.classList.contains("sidebar-visible")) {
+ } else if (body.classList.contains("sidebar-visible")) {
hideSidebar();
} else {
if (getComputedStyle(sidebar)['transform'] === 'none') {
@@ -506,14 +506,14 @@ function playground_text(playground, hidden = true) {
function initResize(e) {
window.addEventListener('mousemove', resize, false);
window.addEventListener('mouseup', stopResize, false);
- html.classList.add('sidebar-resizing');
+ body.classList.add('sidebar-resizing');
}
function resize(e) {
var pos = (e.clientX - sidebar.offsetLeft);
if (pos < 20) {
hideSidebar();
} else {
- if (html.classList.contains("sidebar-hidden")) {
+ if (body.classList.contains("sidebar-hidden")) {
showSidebar();
}
pos = Math.min(pos, window.innerWidth - 100);
@@ -522,7 +522,7 @@ function playground_text(playground, hidden = true) {
}
//on mouseup remove windows functions mousemove & mouseup
function stopResize(e) {
- html.classList.remove('sidebar-resizing');
+ body.classList.remove('sidebar-resizing');
window.removeEventListener('mousemove', resize, false);
window.removeEventListener('mouseup', stopResize, false);
}
@@ -557,20 +557,35 @@ function playground_text(playground, hidden = true) {
document.addEventListener('keydown', function (e) {
if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) { return; }
if (window.search && window.search.hasFocus()) { return; }
+ var html = document.querySelector('html');
+ function next() {
+ var nextButton = document.querySelector('.nav-chapters.next');
+ if (nextButton) {
+ window.location.href = nextButton.href;
+ }
+ }
+ function prev() {
+ var previousButton = document.querySelector('.nav-chapters.previous');
+ if (previousButton) {
+ window.location.href = previousButton.href;
+ }
+ }
switch (e.key) {
case 'ArrowRight':
e.preventDefault();
- var nextButton = document.querySelector('.nav-chapters.next');
- if (nextButton) {
- window.location.href = nextButton.href;
+ if (html.dir == 'rtl') {
+ prev();
+ } else {
+ next();
}
break;
case 'ArrowLeft':
e.preventDefault();
- var previousButton = document.querySelector('.nav-chapters.previous');
- if (previousButton) {
- window.location.href = previousButton.href;
+ if (html.dir == 'rtl') {
+ next();
+ } else {
+ prev();
}
break;
}