1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- // This script should be included at the END of the document.
- // For the fastest loading it does not inlude $(document).ready()
- // This Document contains a few helper functions for the documentation to display the current version,
- // collapse and expand the menu etc.
- // Function to make the sticky header possible
- function shiftWindow() {
- scrollBy(0, -70);
- console.log("window shifted")
- }
- window.addEventListener("hashchange", shiftWindow);
- function loadShift() {
- if (window.location.hash) {
- console.log("window has hash");
- shiftWindow();
- }
- }
- $(window).load(function() {
- loadShift();
- });
- $(function(){
- // sidebar accordian-ing
- // don't apply on last object (it should be the FAQ) or the first (it should be introduction)
- // define an array to which all opened items should be added
- var openmenus = [];
- var elements = $('.toctree-l2');
- // for (var i = 0; i < elements.length; i += 1) { var current = $(elements[i]); current.children('ul').hide();}
- // set initial collapsed state
- var elements = $('.toctree-l1');
- for (var i = 0; i < elements.length; i += 1) {
- var current = $(elements[i]);
- if (current.hasClass('current')) {
- current.addClass('open');
- currentlink = current.children('a')[0].href;
- openmenus.push(currentlink);
- // do nothing
- } else {
- // collapse children
- current.children('ul').hide();
- }
- }
- if (doc_version == "") {
- $('.version-flyer ul').html('<li class="alternative active-slug"><a href="" title="Switch to local">Local</a></li>');
- }
- // mark the active documentation in the version widget
- $(".version-flyer a:contains('" + doc_version + "')").parent().addClass('active-slug');
- // attached handler on click
- // Do not attach to first element or last (intro, faq) so that
- // first and last link directly instead of accordian
- $('.sidebar > ul > li > a').not(':last').not(':first').click(function(){
- var index = $.inArray(this.href, openmenus)
- if (index > -1) {
- console.log(index);
- openmenus.splice(index, 1);
- $(this).parent().children('ul').slideUp(200, function() {
- $(this).parent().removeClass('open'); // toggle after effect
- });
- }
- else {
- openmenus.push(this.href);
- var current = $(this);
- setTimeout(function() {
- // $('.sidebar > ul > li').removeClass('current');
- current.parent().addClass('current').addClass('open'); // toggle before effect
- current.parent().children('ul').hide();
- current.parent().children('ul').slideDown(200);
- }, 100);
- }
- return false;
- });
- // add class to all those which have children
- $('.sidebar > ul > li').not(':last').not(':first').addClass('has-children');
- });
|