hide toc when no titles

This commit is contained in:
zzossig 2020-01-24 04:25:57 +09:00
parent d314aa4f85
commit f6c6469cd6
2 changed files with 136 additions and 88 deletions

View File

@ -192,6 +192,8 @@
var toggleTocElem = document.getElementById('toggle-toc'); var toggleTocElem = document.getElementById('toggle-toc');
var singleContentsElem = document.querySelector('.single__contents'); var singleContentsElem = document.querySelector('.single__contents');
var navbar = document.querySelector('.navbar'); var navbar = document.querySelector('.navbar');
var tocFlexbox = document.querySelector('.toc__flexbox');
var tocFlexboxOuter = document.querySelector('.toc__flexbox--outer');
window.onscroll = function () { window.onscroll = function () {
scrollFunction(); scrollFunction();
@ -214,8 +216,9 @@
navbar.classList.remove('navbar--show'); navbar.classList.remove('navbar--show');
} }
singleContentsElem ? if (singleContentsElem) {
singleContentsElem.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(function(elem) { if (singleContentsElem.querySelectorAll("h1, h2, h3, h4, h5, h6").length > 0) {
singleContentsElem.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(function (elem) {
if (toggleTocElem && !toggleTocElem.checked) { if (toggleTocElem && !toggleTocElem.checked) {
return null; return null;
} }
@ -246,7 +249,22 @@
}) : null; }) : null;
} }
} }
}) : null; });
} else {
if (tocFlexbox) {
tocFlexbox.setAttribute('data-position', '');
if (!tocFlexbox.classList.contains('hide')) {
tocFlexbox.classList.add('hide');
}
}
if (tocFlexboxOuter) {
tocFlexboxOuter.setAttribute('data-position', '');
if (!tocFlexboxOuter.classList.contains('hide')) {
tocFlexboxOuter.classList.add('hide');
}
}
}
}
} else { // scroll up } else { // scroll up
if (st < 250) { if (st < 250) {
gttBtn.style.display = "none"; gttBtn.style.display = "none";
@ -258,8 +276,9 @@
navbar.classList.add('navbar--show'); navbar.classList.add('navbar--show');
} }
singleContentsElem ? if (singleContentsElem) {
singleContentsElem.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(function(elem) { if (singleContentsElem.querySelectorAll("h1, h2, h3, h4, h5, h6").length > 0) {
singleContentsElem.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(function (elem) {
if (toggleTocElem && !toggleTocElem.checked) { if (toggleTocElem && !toggleTocElem.checked) {
return null; return null;
} }
@ -291,7 +310,17 @@
}) : null; }) : null;
} }
} }
}) : null; });
} else {
if (tocFlexbox && !tocFlexbox.classList.contains('hide')) {
tocFlexbox.classList.add('hide');
}
if (tocFlexboxOuter && !tocFlexboxOuter.classList.contains('hide')) {
tocFlexboxOuter.classList.add('hide');
}
}
}
if (tableOfContentsElem && document.documentElement.scrollTop < 250) { if (tableOfContentsElem && document.documentElement.scrollTop < 250) {
tableOfContentsElem.querySelector('ul') ? tableOfContentsElem.querySelector('ul') ?

View File

@ -116,6 +116,8 @@
var enableToc = JSON.parse({{ $enableToc | jsonify }}); var enableToc = JSON.parse({{ $enableToc | jsonify }});
var toc = JSON.parse({{ $toc | jsonify }}); var toc = JSON.parse({{ $toc | jsonify }});
var hideToc = JSON.parse({{ $hideToc | jsonify }}); var hideToc = JSON.parse({{ $hideToc | jsonify }});
var tocFlexbox = document.querySelector('.toc__flexbox');
var tocFlexboxOuter = document.querySelector('.toc__flexbox--outer');
if ((enableToc || toc) && document.querySelector('.toc')) { if ((enableToc || toc) && document.querySelector('.toc')) {
var tableOfContentsElem = document.querySelector('.toc').querySelector('#TableOfContents'); var tableOfContentsElem = document.querySelector('.toc').querySelector('#TableOfContents');
@ -126,14 +128,16 @@
}); });
}) : null; }) : null;
tableOfContentsElem.querySelectorAll('a').forEach(function(elem) { if (tableOfContentsElem) {
elem.addEventListener('click', function() { if (tableOfContentsElem.querySelectorAll('a').length > 0) {
tableOfContentsElem.querySelectorAll('a').forEach(function (elem) {
elem.addEventListener('click', function () {
var id = elem.getAttribute('id'); var id = elem.getAttribute('id');
navbar.classList.remove('navbar--show'); navbar.classList.remove('navbar--show');
navbar.classList.remove('navbar--hide'); navbar.classList.remove('navbar--hide');
navbar.classList.add('navbar--hide'); navbar.classList.add('navbar--hide');
document.querySelector('.toc').querySelectorAll('a').forEach(function(elem) { document.querySelector('.toc').querySelectorAll('a').forEach(function (elem) {
elem.classList.remove('active'); elem.classList.remove('active');
}); });
elem.classList.add('active'); elem.classList.add('active');
@ -157,6 +161,21 @@
} }
}); });
}); });
} else {
if (tocFlexbox) {
tocFlexbox.setAttribute('data-position', '');
if (!tocFlexbox.classList.contains('hide')) {
tocFlexbox.classList.add('hide');
}
}
if (tocFlexboxOuter) {
tocFlexboxOuter.setAttribute('data-position', '');
if (!tocFlexboxOuter.classList.contains('hide')) {
tocFlexboxOuter.classList.add('hide');
}
}
}
}
// toc visibility // toc visibility
var toggleTocElem = document.getElementById("toggle-toc"); var toggleTocElem = document.getElementById("toggle-toc");