Skip to content

Commit 8d8f62f

Browse files
committed
Css-based TOC animation
1 parent 17969cf commit 8d8f62f

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

assets/sass/style.scss

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -554,3 +554,28 @@ 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+
-webkit-transition: opacity .25s, font-size .5s .25s, margin .5s .25s, padding .5s .25s;
566+
-moz-transition: opacity .25s, font-size .5s .25s, margin .5s .25s, padding .5s .25s;
567+
-o-transition: opacity .25s, font-size .5s .25s, margin .5s .25s, padding .5s .25s;
568+
-ms-transition: opacity .25s, font-size .5s .25s, margin .5s .25s, padding .5s .25s;
569+
transition: opacity .25s, font-size .5s .25s, margin .5s .25s, padding .5s .25s;
570+
571+
}
572+
573+
/* reveal TOC */
574+
.shownTOC {
575+
/* unshrink, then fade in */
576+
-webkit-transition: font-size .25s, margin .25s, padding .25s, opacity .5s .25s;
577+
-moz-transition: font-size .25s, margin .25s, padding .25s, opacity .5s .25s;
578+
-o-transition: font-size .25s, margin .25s, padding .25s, opacity .5s .25s;
579+
-ms-transition: font-size .25s, margin .25s, padding .25s, opacity .5s .25s;
580+
transition: font-size .25s, margin .25s, padding .25s, opacity .5s .25s;
581+
}

html/js/main.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,14 @@ function setup_collapsible_TOC() {
5353
var el = $(this);
5454
if (el.text() == '[hide]') {
5555
Cookies.set('toc_state', 'hidden');
56-
el.parents('nav').find('tbody').slideUp();
56+
el.parents('nav').find('tbody').removeClass('shownTOC');
57+
el.parents('nav').find('tbody').addClass('hiddenTOC');
5758
el.text('[show]');
5859
}
5960
else {
6061
Cookies.set('toc_state', 'shown');
61-
el.parents('nav').find('tbody').slideDown();
62+
el.parents('nav').find('tbody').removeClass('hiddenTOC');
63+
el.parents('nav').find('tbody').addClass('shownTOC');
6264
el.text('[hide]');
6365
}
6466

0 commit comments

Comments
 (0)