diff --git a/src/theme/book.js b/src/theme/book.js index 151ed640..e5a02ac4 100644 --- a/src/theme/book.js +++ b/src/theme/book.js @@ -51,31 +51,21 @@ $( document ).ready(function() { }); // Interesting DOM Elements - var html = $("html"); var sidebar = $("#sidebar"); var page_wrapper = $("#page-wrapper"); var content = $("#content"); // Toggle sidebar - $("#sidebar-toggle").click(function(event){ - if ( html.hasClass("sidebar-hidden") ) { - html.removeClass("sidebar-hidden").addClass("sidebar-visible"); - localStorage.setItem('sidebar', 'visible'); - } else if ( html.hasClass("sidebar-visible") ) { - html.removeClass("sidebar-visible").addClass("sidebar-hidden"); - localStorage.setItem('sidebar', 'hidden'); - } else { - if(sidebar.position().left === 0){ - html.addClass("sidebar-hidden"); - localStorage.setItem('sidebar', 'hidden'); - } else { - html.addClass("sidebar-visible"); - localStorage.setItem('sidebar', 'visible'); - } + $("#sidebar-toggle").click(sidebarToggle); + + // Hide sidebar on section link click if it occupies large space + // in relation to the whole screen (phone in portrait) + $("#sidebar a").click(function(event){ + if (sidebar.width() > window.screen.width * 0.4) { + sidebarToggle(); } }); - // Scroll sidebar to current active section var activeSection = sidebar.find(".active"); if(activeSection.length) { @@ -227,6 +217,25 @@ function showTooltip(elem, msg) { elem.setAttribute('class', 'fa fa-copy tooltipped'); } +function sidebarToggle() { + var html = $("html"); + if ( html.hasClass("sidebar-hidden") ) { + html.removeClass("sidebar-hidden").addClass("sidebar-visible"); + localStorage.setItem('sidebar', 'visible'); + } else if ( html.hasClass("sidebar-visible") ) { + html.removeClass("sidebar-visible").addClass("sidebar-hidden"); + localStorage.setItem('sidebar', 'hidden'); + } else { + if($("#sidebar").position().left === 0){ + html.addClass("sidebar-hidden"); + localStorage.setItem('sidebar', 'hidden'); + } else { + html.addClass("sidebar-visible"); + localStorage.setItem('sidebar', 'visible'); + } + } +} + function run_rust_code(code_block) { var result_block = code_block.find(".result"); if(result_block.length === 0) {