diff options
Diffstat (limited to 'docs/site/js/base.js')
-rw-r--r-- | docs/site/js/base.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/docs/site/js/base.js b/docs/site/js/base.js new file mode 100644 index 0000000..7f18720 --- /dev/null +++ b/docs/site/js/base.js @@ -0,0 +1,53 @@ + +/* Highlight */ +$( document ).ready(function() { + hljs.initHighlightingOnLoad(); + $('table').addClass('table'); +}); + + +/* Scrollspy */ +var navHeight = $('.navbar').outerHeight(true) + 10 + +$('body').scrollspy({ + target: '.bs-sidebar', + offset: navHeight +}) + + +/* Prevent disabled links from causing a page reload */ +$("li.disabled a").click(function() { + event.preventDefault(); +}); + + +/* Adjust the scroll height of anchors to compensate for the fixed navbar */ +window.disableShift = false; +var shiftWindow = function() { + if (window.disableShift) { + window.disableShift = false; + } else { + /* If we're at the bottom of the page, don't erronously scroll up */ + var scrolledToBottomOfPage = ( + (window.innerHeight + window.scrollY) >= document.body.offsetHeight + ); + if (!scrolledToBottomOfPage) { + scrollBy(0, -60); + }; + }; +}; +if (location.hash) {shiftWindow();} +window.addEventListener("hashchange", shiftWindow); + + +/* Deal with clicks on nav links that do not change the current anchor link. */ +$("ul.nav a" ).click(function() { + var href = this.href; + var suffix = location.hash; + var matchesCurrentHash = (href.indexOf(suffix, href.length - suffix.length) !== -1); + if (location.hash && matchesCurrentHash) { + /* Force a single 'hashchange' event to occur after the click event */ + window.disableShift = true; + location.hash=''; + }; +}); |