Skip to content

Commit 4da66d9

Browse files
peterzhangsnailljharb
authored andcommitted
collapsible pin pane
1 parent 012d871 commit 4da66d9

File tree

2 files changed

+28
-7
lines changed

2 files changed

+28
-7
lines changed

css/elements.css

+10-6
Original file line numberDiff line numberDiff line change
@@ -569,7 +569,8 @@ tr.del > td {
569569
white-space: nowrap;
570570
}
571571

572-
#menu-toc .item-toggle {
572+
#menu-toc .item-toggle,
573+
#menu-pins-header .item-toggle {
573574
display: inline-block;
574575
transform: rotate(-45deg) translate(-5px, -5px);
575576
transition: transform 0.1s ease;
@@ -593,15 +594,18 @@ tr.del > td {
593594
width: 20px;
594595
}
595596

596-
#menu-toc li.active > .item-toggle {
597+
#menu-toc li.active > .item-toggle,
598+
#menu-pins-header.active > .item-toggle {
597599
transform: rotate(45deg) translate(-5px, -5px);
598600
}
599601

600-
#menu-toc li > ol {
602+
#menu-toc li > ol,
603+
#menu-pins-header + #menu-pins-list {
601604
display: none;
602605
}
603606

604-
#menu-toc li.active > ol {
607+
#menu-toc li.active > ol,
608+
#menu-pins-header.active + #menu-pins-list {
605609
display: block;
606610
}
607611

@@ -668,10 +672,10 @@ tr.del > td {
668672
flex-grow: 0;
669673
flex-shrink: 0;
670674
width: 100%;
671-
675+
672676
display: flex;
673677
flex-direction: column;
674-
678+
675679
max-height: 300px;
676680
}
677681

js/menu.js

+18-1
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ function Menu() {
238238
document.addEventListener('keydown', this.documentKeydown.bind(this));
239239

240240
// toc expansion
241-
var tocItems = this.$menu.querySelectorAll('#menu-toc li');
241+
var tocItems = this.$menu.querySelectorAll('#menu-toc li, #menu-pins .menu-pane-header');
242242
for (var i = 0; i < tocItems.length; i++) {
243243
var $item = tocItems[i];
244244
$item.addEventListener('click', function($item, event) {
@@ -848,3 +848,20 @@ document.addEventListener('DOMContentLoaded', function () {
848848
Toolbox.init();
849849
referencePane.init();
850850
})
851+
852+
// collapsible pin pane
853+
document.addEventListener('DOMContentLoaded', collapsiblePinPane);
854+
855+
function collapsiblePinPane() {
856+
var MenuPins = document.getElementById('menu-pins');
857+
var MenuPaneHeader = MenuPins.querySelector('.menu-pane-header');
858+
MenuPaneHeader.setAttribute('id', 'menu-pins-header'); // Give the header an id for convenience.
859+
860+
var pinButton = document.createElement('span');
861+
pinButton.textContent = "◢";
862+
pinButton.setAttribute('class', 'item-toggle');
863+
pinButton.style.cssFloat = 'right'; // Float the button to the right side, making it easier to be noticed.
864+
pinButton.style.color = 'black'; // Set a different color for it, so the button won't be mixed with the background.
865+
866+
MenuPaneHeader.appendChild(pinButton);
867+
}

0 commit comments

Comments
 (0)