Difference between revisions of "Template:Shanghaitech/js"

m (fix typo)
 
(15 intermediate revisions by the same user not shown)
Line 2: Line 2:
  
 
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">&gt;</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">&gt;</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;
        title = titles[i];
+
    if (titles.length === 0) {
        title.id = title.innerHTML.replace(' ', '-');
+
        $("#mySidenav").remove();
         createSidenavElement(title);
+
    } 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.innerHTML).replace("%id", title.id);
+
     elementHTML = '<a href="#%id">%title</a>'.replace("%title", title.textContent).replace("%id", title.id);
     $(elementHTML).appendTo("mySidenav");
+
     $(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