From 8ab24b2ebcf99f703f00297cb3a0c3ff857eecf8 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Wed, 8 May 2019 15:32:08 +0200 Subject: [2.7] bpo-24712: Doc: Make sidebar sticky using browser support. (GH-13179) Patch by Mike Taylor. --- Doc/tools/static/sidebar.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Doc/tools/static/sidebar.js b/Doc/tools/static/sidebar.js index 1bdd829..17f818e 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']; -- cgit v0.12