From 3d37e24c14ca1cece03ca76e9c1b4a46d03891d2 Mon Sep 17 00:00:00 2001 From: gentoo90 Date: Wed, 12 Dec 2018 21:31:01 +0200 Subject: [PATCH] Add sidebar resizing --- src/theme/book.js | 16 ++++++++++++++++ src/theme/css/chrome.css | 29 ++++++++++++++++++++++++----- src/theme/index.hbs | 9 ++++++--- 3 files changed, 46 insertions(+), 8 deletions(-) diff --git a/src/theme/book.js b/src/theme/book.js index 4640e8fc..f2a90464 100644 --- a/src/theme/book.js +++ b/src/theme/book.js @@ -435,6 +435,7 @@ function playpen_text(playpen) { var sidebar = document.getElementById("sidebar"); var sidebarLinks = document.querySelectorAll('#sidebar a'); var sidebarToggleButton = document.getElementById("sidebar-toggle"); + var sidebarResizeHandle = document.getElementById("sidebar-resize-handle"); var firstContact = null; function showSidebar() { @@ -474,6 +475,21 @@ function playpen_text(playpen) { } }); + sidebarResizeHandle.addEventListener('mousedown', initResize, false); + + function initResize(e) { + window.addEventListener('mousemove', resize, false); + window.addEventListener('mouseup', stopResize, false); + } + function resize(e) { + document.documentElement.style.setProperty('--sidebar-width', (e.clientX - sidebar.offsetLeft) + 'px'); + } + //on mouseup remove windows functions mousemove & mouseup + function stopResize(e) { + window.removeEventListener('mousemove', resize, false); + window.removeEventListener('mouseup', stopResize, false); + } + document.addEventListener('touchstart', function (e) { firstContact = { x: e.touches[0].clientX, diff --git a/src/theme/css/chrome.css b/src/theme/css/chrome.css index 0ab16869..39286985 100644 --- a/src/theme/css/chrome.css +++ b/src/theme/css/chrome.css @@ -78,7 +78,7 @@ html:not(.sidebar-visible) #menu-bar:not(:hover).folded > #menu-bar-sticky-conta display: flex; margin: 0 5px; } -.no-js .left-buttons { +.no-js .left-buttons { display: none; } @@ -145,7 +145,7 @@ html:not(.sidebar-visible) #menu-bar:not(:hover).folded > #menu-bar-sticky-conta display: none; } -.mobile-nav-chapters { +.mobile-nav-chapters { font-size: 2.5em; text-align: center; text-decoration: none; @@ -301,8 +301,6 @@ ul#searchresults span.teaser em { top: 0; bottom: 0; width: var(--sidebar-width); - overflow-y: auto; - padding: 10px 10px; font-size: 0.875em; box-sizing: border-box; -webkit-overflow-scrolling: touch; @@ -316,6 +314,27 @@ ul#searchresults span.teaser em { .sidebar code { line-height: 2em; } +.sidebar .sidebar-scrollbox { + overflow-y: auto; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + padding: 10px 10px; +} +.sidebar .sidebar-resize-handle { + position: absolute; + cursor: col-resize; + width: 0; + right: 0; + top: 0; + bottom: 0; +} +.js .sidebar .sidebar-resize-handle { + cursor: col-resize; + width: 5px; +} .sidebar-hidden .sidebar { transform: translateX(calc(0px - var(--sidebar-width))); } @@ -366,7 +385,7 @@ a:hover { background-color: var(--sidebar-spacer); } -@media (-moz-touch-enabled: 1), (pointer: coarse) { +@media (-moz-touch-enabled: 1), (pointer: coarse) { .chapter li a { padding: 5px 0; } .spacer { margin: 10px 0; } } diff --git a/src/theme/index.hbs b/src/theme/index.hbs index bfe4283a..cce561f6 100644 --- a/src/theme/index.hbs +++ b/src/theme/index.hbs @@ -61,7 +61,7 @@
@@ -110,7 +113,7 @@ {{/if}}
-

{{ book_title }}

+

{{ book_title }}