$(function() { // Automatically scroll the navigation menu to the active element // https://github.com/civicrm/civicrm-dev-docs/issues/21 $.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').isFullyWithinViewport() ) { $('.wy-nav-side') .scrollTop( $('li.toctree-l1.current').offset().top - $('.wy-nav-side').offset().top - 60 ); } });