summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulien Palard <julien@palard.fr>2019-05-08 13:32:08 (GMT)
committerStéphane Wirtel <stephane@wirtel.be>2019-05-08 13:32:07 (GMT)
commit8ab24b2ebcf99f703f00297cb3a0c3ff857eecf8 (patch)
treed7fa137a3a09388349b76fd7b33165439580d1b0
parent7c2c01f02a1821298a62dd16ecc3a12da663e14b (diff)
downloadcpython-8ab24b2ebcf99f703f00297cb3a0c3ff857eecf8.zip
cpython-8ab24b2ebcf99f703f00297cb3a0c3ff857eecf8.tar.gz
cpython-8ab24b2ebcf99f703f00297cb3a0c3ff857eecf8.tar.bz2
[2.7] bpo-24712: Doc: Make sidebar sticky using browser support. (GH-13179)
Patch by Mike Taylor.
-rw-r--r--Doc/tools/static/sidebar.js12
1 files changed, 12 insertions, 0 deletions
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'];