]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[2.7] bpo-24712: Doc: Make sidebar sticky using browser support. (GH-13179)
authorJulien Palard <julien@palard.fr>
Wed, 8 May 2019 13:32:08 +0000 (15:32 +0200)
committerStéphane Wirtel <stephane@wirtel.be>
Wed, 8 May 2019 13:32:07 +0000 (09:32 -0400)
Patch by Mike Taylor.

Doc/tools/static/sidebar.js

index 1bdd829a7683d778e63e86fc71ddce6167ea384a..17f818ec140e0e10d4b419e415be4a4938bea5ea 100644 (file)
@@ -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'];