123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- $( document ).ready(function() {
- // Shift nav in mobile when clicking the menu.
- $(document).on('click', "[data-toggle='wy-nav-top']", function() {
- $("[data-toggle='wy-nav-shift']").toggleClass("shift");
- $("[data-toggle='rst-versions']").toggleClass("shift");
- });
- // Close menu when you click a link.
- $(document).on('click', ".wy-menu-vertical .current ul li a", function() {
- $("[data-toggle='wy-nav-shift']").removeClass("shift");
- $("[data-toggle='rst-versions']").toggleClass("shift");
- });
- // Keyboard navigation
- document.addEventListener("keydown", function(e) {
- var key = e.which || e.keyCode || window.event && window.event.keyCode;
- var page;
- switch (key) {
- case 78: // n
- page = $('[role="navigation"] a:contains(Next):first').prop('href');
- break;
- case 80: // p
- page = $('[role="navigation"] a:contains(Previous):first').prop('href');
- break;
- case 13: // enter
- if (e.target === document.getElementById('mkdocs-search-query')) {
- e.preventDefault();
- }
- break;
- default: break;
- }
- if ($(e.target).is(':input')) {
- return true;
- } else if (page) {
- window.location.href = page;
- }
- });
- $(document).on('click', "[data-toggle='rst-current-version']", function() {
- $("[data-toggle='rst-versions']").toggleClass("shift-up");
- });
- // Make tables responsive
- $("table.docutils:not(.field-list)").wrap("<div class='wy-table-responsive'></div>");
- $('table').addClass('docutils');
- });
- window.SphinxRtdTheme = (function (jquery) {
- var stickyNav = (function () {
- var navBar,
- win,
- stickyNavCssClass = 'stickynav',
- applyStickNav = function () {
- if (navBar.height() <= win.height()) {
- navBar.addClass(stickyNavCssClass);
- } else {
- navBar.removeClass(stickyNavCssClass);
- }
- },
- enable = function () {
- applyStickNav();
- win.on('resize', applyStickNav);
- },
- init = function () {
- navBar = jquery('nav.wy-nav-side:first');
- win = jquery(window);
- };
- jquery(init);
- return {
- enable : enable
- };
- }());
- return {
- StickyNav : stickyNav
- };
- }($));
- // The code below is a copy of @seanmadsen code posted Jan 10, 2017 on issue 803.
- // https://github.com/mkdocs/mkdocs/issues/803
- // This just incorporates the auto scroll into the theme itself without
- // the need for additional custom.js file.
- //
- $(function() {
- $.fn.isFullyWithinViewport = function(){
- var viewport = {};
- viewport.top = $(window).scrollTop();
- viewport.bottom = viewport.top + $(window).height();
- var bounds = {};
- bounds.top = this.offset().top;
- bounds.bottom = bounds.top + this.outerHeight();
- return ( ! (
- (bounds.top <= viewport.top) ||
- (bounds.bottom >= viewport.bottom)
- ) );
- };
- if( $('li.toctree-l1.current').length && !$('li.toctree-l1.current').isFullyWithinViewport() ) {
- $('.wy-nav-side')
- .scrollTop(
- $('li.toctree-l1.current').offset().top -
- $('.wy-nav-side').offset().top -
- 60
- );
- }
- });
|