Skip to content

Commit 60aa1dd

Browse files
authored
Merge pull request #767 from perl6/animated_css
Css-based TOC animation
2 parents 62cc649 + 21893b2 commit 60aa1dd

File tree

2 files changed

+23
-12
lines changed

2 files changed

+23
-12
lines changed

assets/sass/style.scss

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -554,3 +554,20 @@ div.highlight span.c-Singleline, div.highlight span.c {
554554
}
555555
}
556556
}
557+
558+
/* hide TOC */
559+
.hiddenTOC {
560+
font-size: 0;
561+
margin: 0;
562+
opacity: 0;
563+
padding: 0;
564+
/* fade out, then shrink */
565+
transition: opacity .25s, font-size .5s .25s, margin .5s .25s, padding .5s .25s;
566+
567+
}
568+
569+
/* reveal TOC */
570+
.shownTOC {
571+
/* unshrink, then fade in */
572+
transition: font-size .25s, margin .25s, padding .25s, opacity .5s .25s;
573+
}

html/js/main.js

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ function setup_collapsible_TOC() {
3939

4040
state = Cookies.get('toc_state') || 'shown';
4141
if ( state == 'hidden' ) {
42-
$('nav.indexgroup > ol').hide();
42+
$('#TOC').find('tbody').addClass('hiddenTOC');
43+
} else {
44+
$('#TOC').find('tbody').addClass('shownTOC');
4345
}
4446

4547
$('nav.indexgroup').find('#TOC_Title')
@@ -51,17 +53,9 @@ function setup_collapsible_TOC() {
5153
.find('#TOC_toggle_button')
5254
.click(function() {
5355
var el = $(this);
54-
if (el.text() == '[hide]') {
55-
Cookies.set('toc_state', 'hidden');
56-
el.parents('nav').find('tbody').slideUp();
57-
el.text('[show]');
58-
}
59-
else {
60-
Cookies.set('toc_state', 'shown');
61-
el.parents('nav').find('tbody').slideDown();
62-
el.text('[hide]');
63-
}
64-
56+
el.text(el.text() == '[hide]' ? '[show]' : '[hide]');
57+
Cookies.set('toc_state', el.text() == '[hide]' ? 'shown' : 'hidden');
58+
el.parents('nav').find('tbody').toggleClass('hiddenTOC').toggleClass('shownTOC');
6559
return false;
6660
});
6761
}

0 commit comments

Comments
 (0)