diff --git a/cinera/cinera.c b/cinera/cinera.c index ec095e5..fc6d1c1 100644 --- a/cinera/cinera.c +++ b/cinera/cinera.c @@ -23,7 +23,7 @@ typedef struct version CINERA_APP_VERSION = { .Major = 0, .Minor = 8, - .Patch = 4 + .Patch = 5 }; #include // NOTE(matt): varargs diff --git a/cinera/cinera_pre.js b/cinera/cinera_pre.js index ab73558..2551c99 100644 --- a/cinera/cinera_pre.js +++ b/cinera/cinera_pre.js @@ -268,21 +268,23 @@ var ScrollTicking = false; var ScrollerFunction; var ScrollCondition; -function ScrollTo(Element, ScrollPos) { +function ScrollTo(Element, ScrollPos, StickyObscuringElement) { var BoundingRect = Element.getBoundingClientRect(); var Height = BoundingRect.height; var PercentageOfInView = 89; var GatherableHeight = Height * (1 - PercentageOfInView / 100); var ScrollY = BoundingRect.top; var YOffsetFromPage = getElementYOffsetFromPage(Element); - var DesiredScroll = null; - if(ScrollY < 0) + var DesiredScroll = null; + var Ceiling = StickyObscuringElement ? StickyObscuringElement.offsetHeight : 0; + + if(ScrollY < Ceiling) { - ScrollY = ~ScrollY; + if(ScrollY < 0) { ScrollY = -ScrollY; } if(ScrollY <= GatherableHeight) { - DesiredScroll = YOffsetFromPage; + DesiredScroll = YOffsetFromPage - Ceiling; } } else @@ -304,7 +306,7 @@ function ScrollTo(Element, ScrollPos) { } function -InitScrollEventListener(Element) +InitScrollEventListener(Element, StickyObscuringElement) { window.addEventListener('scroll', function() { if(ScrollCondition == undefined || ScrollCondition == true) @@ -314,7 +316,7 @@ InitScrollEventListener(Element) if (!ScrollTicking) { window.requestAnimationFrame(function() { clearTimeout(ScrollerFunction); - ScrollerFunction = setTimeout(ScrollTo, 2000, Element, LastScrollYPos); + ScrollerFunction = setTimeout(ScrollTo, 2000, Element, LastScrollYPos, StickyObscuringElement); ScrollTicking = false; }); diff --git a/cinera/cinera_search_post.js b/cinera/cinera_search_post.js index 004d433..f6b4425 100644 --- a/cinera/cinera_search_post.js +++ b/cinera/cinera_search_post.js @@ -55,7 +55,7 @@ BindGridKeys(Nav.GridSize); BindControls(); InitResizeEventListener(); InitOrientationChangeListener(); -InitScrollEventListener(Nav.Grid); +InitScrollEventListener(Nav.GridContainer, Nav.Controls.Header); // ////