Skip to content

Commit 6c24009

Browse files
committed
Fix #47 sidebar stays hidden even after page change
1 parent 7446743 commit 6c24009

File tree

6 files changed

+64
-9
lines changed

6 files changed

+64
-9
lines changed

src/theme/book.css

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,15 @@ body {
3030
}
3131
@media only screen and (max-width: 1060px) {
3232
.sidebar {
33-
left: -300px;
33+
left: -$sidebar-width;
3434
}
3535
}
36+
.sidebar-hidden .sidebar {
37+
left: -300px;
38+
}
39+
.sidebar-visible . sidebar {
40+
left: 0;
41+
}
3642
.chapter {
3743
list-style: none outside none;
3844
padding-left: 0;
@@ -85,6 +91,12 @@ body {
8591
padding-right: 15px;
8692
}
8793
}
94+
.sidebar-hidden .page-wrapper {
95+
left: 15px;
96+
}
97+
.sidebar-visible .page-wrapper {
98+
left: 315px;
99+
}
88100
.page {
89101
position: absolute;
90102
top: 0;

src/theme/book.js

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ $( document ).ready(function() {
33
// url
44
var url = window.location.pathname;
55

6+
67
// Set theme
78
var theme = localStorage.getItem('theme');
89
if (theme == null) { theme = 'light'; }
910

1011
set_theme(theme);
1112

13+
1214
// Syntax highlighting Configuration
1315
hljs.configure({
1416
tabReplace: ' ', // 4 spaces
@@ -21,19 +23,31 @@ $( document ).ready(function() {
2123

2224

2325
// Interesting DOM Elements
26+
var html = $("html");
2427
var sidebar = $("#sidebar");
2528
var page_wrapper = $("#page-wrapper");
2629

30+
31+
// Toggle sidebar
2732
$("#sidebar-toggle").click(function(event){
28-
if(sidebar.position().left === 0){
29-
sidebar.css({left: "-300px"});
30-
page_wrapper.css({left: "15px"});
33+
if ( html.hasClass("sidebar-hidden") ) {
34+
html.removeClass("sidebar-hidden").addClass("sidebar-visible");
35+
localStorage.setItem('sidebar', 'visible');
36+
} else if ( html.hasClass("sidebar-visible") ) {
37+
html.removeClass("sidebar-visible").addClass("sidebar-hidden");
38+
localStorage.setItem('sidebar', 'hidden');
3139
} else {
32-
sidebar.css({left: "0"});
33-
page_wrapper.css({left: "315px"});
40+
if(sidebar.position().left === 0){
41+
html.addClass("sidebar-hidden");
42+
localStorage.setItem('sidebar', 'hidden');
43+
} else {
44+
html.addClass("sidebar-visible");
45+
localStorage.setItem('sidebar', 'visible');
46+
}
3447
}
3548
});
3649

50+
3751
// Print button
3852
$("#print-button").click(function(){
3953
var printWindow = window.open("print.html");
@@ -43,6 +57,7 @@ $( document ).ready(function() {
4357
window.print();
4458
}
4559

60+
4661
// Theme button
4762
$("#theme-toggle").click(function(){
4863
if($('.theme-popup').length) {

src/theme/index.hbs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,13 @@
3737
$('body').removeClass().addClass(theme);
3838
</script>
3939

40+
<!-- Hide / unhide sidebar before it is displayed -->
41+
<script type="text/javascript">
42+
var sidebar = localStorage.getItem('sidebar');
43+
if (sidebar === "hidden") { $("html").addClass("sidebar-hidden") }
44+
else if (sidebar === "visible") { $("html").addClass("sidebar-visible") }
45+
</script>
46+
4047
<div id="sidebar" class="sidebar">
4148
{{#toc}}{{/toc}}
4249
</div>

src/theme/stylus/page.styl

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
@require 'variables'
2+
13
.page-wrapper {
24
position: absolute
35
overflow-y: auto
4-
left: 315px
6+
left: $sidebar-width + 15px
57
right: 0
68
top: 0
79
bottom: 0
@@ -19,6 +21,14 @@
1921
}
2022
}
2123

24+
.sidebar-hidden .page-wrapper {
25+
left: 15px
26+
}
27+
28+
.sidebar-visible .page-wrapper {
29+
left: $sidebar-width + 15px
30+
}
31+
2232
.page {
2333
position: absolute
2434
top: 0

src/theme/stylus/sidebar.styl

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1+
@require 'variables'
2+
13
.sidebar {
24
position: absolute
35
left: 0
46
top: 0
57
bottom: 0
6-
width: 300px
8+
width: $sidebar-width
79
overflow-y: auto
810
padding: 10px 10px
911
font-size: 0.875em
@@ -14,10 +16,18 @@
1416
transition: left 0.5s
1517

1618
@media only screen and (max-width: 1060px) {
17-
left: -300px
19+
left: -$sidebar-width
1820
}
1921
}
2022

23+
.sidebar-hidden .sidebar {
24+
left: - $sidebar-width
25+
}
26+
27+
.sidebar-visible . sidebar {
28+
left: 0
29+
}
30+
2131
.chapter {
2232
list-style: none outside none
2333
padding-left: 0

src/theme/stylus/variables.styl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
$sidebar-width = 300px

0 commit comments

Comments
 (0)