Wweeiiyyiinn (Talk | contribs) m (global match) |
Wweeiiyyiinn (Talk | contribs) |
||
(13 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<html><script> | <html><script> | ||
+ | |||
function createEmptySidenav() { | function createEmptySidenav() { | ||
− | $('<div id="mySidenav" class="sidenav shown"><a href="javascript:void(0)" id="hide-botton" onclick="closeNav()"><span id="hide-botton-icon">></span></a></div>').appendTo('#mw-content-text'); | + | $('<div id="mySidenav" class="sidenav shown"><div id="sidenav-wrapper"><a href="javascript:void(0)" id="hide-botton" onclick="closeNav()"><span id="hide-botton-icon">></span></a></div></div>').appendTo('#mw-content-text'); |
} | } | ||
function parseContentTitles() { | function parseContentTitles() { | ||
titles = document.getElementById("content-block").getElementsByTagName('h2'); | titles = document.getElementById("content-block").getElementsByTagName('h2'); | ||
− | for (var i = 0; i < titles.length; i++) { | + | var count = 0; |
− | + | if (titles.length === 0) { | |
− | + | $("#mySidenav").remove(); | |
− | + | } else { | |
+ | for (var i = 0; i < titles.length; i++) { | ||
+ | title = titles[i]; | ||
+ | title.id = 'passageTitle' + count; | ||
+ | count += 1; | ||
+ | createSidenavElement(title); | ||
+ | } | ||
+ | $(window).load(adjustSidenavHeight); | ||
+ | $(window).resize(adjustSidenavHeight); | ||
} | } | ||
} | } | ||
function createSidenavElement(title) { | function createSidenavElement(title) { | ||
− | elementHTML = '<a href="#%id">%title</a>'.replace("%title", title. | + | elementHTML = '<a href="#%id">%title</a>'.replace("%title", title.textContent).replace("%id", title.id); |
− | $(elementHTML).appendTo(" | + | $(elementHTML).appendTo("#sidenav-wrapper"); |
} | } | ||
− | function createSidenav(){ | + | function createSidenav() { |
+ | $("#mySidenav").remove(); | ||
createEmptySidenav(); | createEmptySidenav(); | ||
parseContentTitles(); | parseContentTitles(); | ||
} | } | ||
+ | |||
+ | function adjustSidenavHeight() { | ||
+ | $("#sidenav-wrapper").removeClass("scroll").removeClass("narrower").removeClass("narrow"); | ||
+ | narrowSidebar(); | ||
+ | } | ||
+ | |||
+ | function narrowSidebar() { | ||
+ | var lastHeight = $("#sidenav-wrapper").height(); | ||
+ | if ($("#sidenav-wrapper").height() >= $("#mySidenav").height() * 0.9) { | ||
+ | narrowerSidebar() | ||
+ | } | ||
+ | setTimeout(function () { | ||
+ | if ($("#sidenav-wrapper").height() != lastHeight) { | ||
+ | narrowSidebar() | ||
+ | } else { | ||
+ | setTimeout(this, 500) | ||
+ | } | ||
+ | }, 500); | ||
+ | } | ||
+ | |||
+ | function narrowerSidebar() { | ||
+ | if (!$("#sidenav-wrapper").hasClass("narrow")) { | ||
+ | $("#sidenav-wrapper").addClass("narrow"); | ||
+ | } else if (!$("#sidenav-wrapper").hasClass("narrower")) { | ||
+ | $("#sidenav-wrapper").addClass("narrower"); | ||
+ | } else { | ||
+ | $("#sidenav-wrapper").addClass("scroll"); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | $(document).ready(createSidenav); | ||
+ | |||
+ | |||
</script></html> | </script></html> |
Latest revision as of 17:58, 30 October 2017