From: Julien Palard Date: Wed, 8 May 2019 13:32:08 +0000 (+0200) Subject: [2.7] bpo-24712: Doc: Make sidebar sticky using browser support. (GH-13179) X-Git-Tag: v2.7.17rc1~85 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8ab24b2ebcf99f703f00297cb3a0c3ff857eecf8;p=thirdparty%2FPython%2Fcpython.git [2.7] bpo-24712: Doc: Make sidebar sticky using browser support. (GH-13179) Patch by Mike Taylor. --- diff --git a/Doc/tools/static/sidebar.js b/Doc/tools/static/sidebar.js index 1bdd829a7683..17f818ec140e 100644 --- a/Doc/tools/static/sidebar.js +++ b/Doc/tools/static/sidebar.js @@ -46,6 +46,15 @@ $(function() { var dark_color = $('.related').css('background-color'); var light_color = $('.document').css('background-color'); + // set position: sticky on sidebar + // (browsers that don't support this will fall-back to + // positioning via scroll_sidebar) + var supportsPositionSticky = (window.CSS && window.CSS.supports && + window.CSS.supports('position', 'sticky')); + if (supportsPositionSticky) { + sidebarwrapper.css('position', 'sticky'); + } + function get_viewport_height() { if (window.innerHeight) return window.innerHeight; @@ -157,6 +166,9 @@ $(function() { /* intelligent scrolling */ function scroll_sidebar() { + if (supportsPositionSticky) { + return; + } var sidebar_height = sidebarwrapper.height(); var viewport_height = get_viewport_height(); var offset = sidebar.position()['top'];