From 2ce24b64e17075726761eb7b017642ea05c72479 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Mon, 26 May 2014 16:40:24 -0400 Subject: [PATCH] more tweaks --- doc/build/static/docs.css | 19 ++++++++++++++++--- doc/build/static/init.js | 30 ++++++++++++++++++++++++------ 2 files changed, 40 insertions(+), 9 deletions(-) diff --git a/doc/build/static/docs.css b/doc/build/static/docs.css index 9797bbf658..f9d60a45a9 100644 --- a/doc/build/static/docs.css +++ b/doc/build/static/docs.css @@ -199,12 +199,25 @@ a.headerlink:hover { background-color:#FFF; } +#docs-sidebar.preautomated { + overflow-y: auto; + bottom: 0; +} + +/* http://css-tricks.com/hash-tag-links-padding/ */ +#docs-container.preautomated div.section:before { + content: " "; + display: block; + height:100px; + margin-top: -100px; + visibility: hidden; +} + #docs-sidebar.automated { float: none; position: fixed; - top: 96px; - bottom: 0; - overflow-y: auto; + top: 120px; + min-height: 0; } diff --git a/doc/build/static/init.js b/doc/build/static/init.js index 8422fe12cd..6ea218e1de 100644 --- a/doc/build/static/init.js +++ b/doc/build/static/init.js @@ -11,30 +11,48 @@ var automatedBreakpoint = -1; function initFloatyThings() { - automatedBreakpoint = $("#docs-top-navigation-container").offset().top; - autoOffset = $("#docs-container").offset().top; + automatedBreakpoint = $("#docs-top-navigation-container").position().top; + + parentOffset = $("#docs-container").parent().position().top - $("#docs-container").position().top; + containerHeight = $("#docs-top-navigation-container").height(); + + sidebar = $("#docs-sidebar").position(); + if (sidebar) { + margin = sidebar.top - (automatedBreakpoint + containerHeight); + } + else { + margin = 0; + } + autoOffset = containerHeight + margin - parentOffset; + + $("#docs-sidebar").addClass("preautomated"); + $("#docs-container").addClass("preautomated"); + + function setNavSize() { $("#docs-top-navigation-container").css("width", $("#docs-container").width()); } function setScroll() { + var scrolltop = $(window).scrollTop(); if (scrolltop >= automatedBreakpoint) { setNavSize(); $("#docs-top-navigation-container").addClass("automated"); $("#docs-sidebar").addClass("automated"); - $("#docs-sidebar").css("top", $("#docs-top-navigation-container").height()); - $("#docs-body").css("margin-top", - $("#docs-top-navigation-container").height() + - autoOffset); + $("#docs-container").addClass("automated"); + $("#docs-body").css("margin-top", autoOffset); } else { $("#docs-top-navigation-container.automated").css("width", ""); $("#docs-sidebar.automated").scrollTop(0); $("#docs-top-navigation-container").removeClass("automated"); + $("#docs-container").removeClass("automated"); $("#docs-sidebar").removeClass("automated"); $("#docs-body").css("margin-top", ""); } + + } $(window).scroll(setScroll) -- 2.47.3