Skip to content

Commit

Permalink
fix(ScrollCollapse): factor in element offsetTop when calculating min…
Browse files Browse the repository at this point in the history
…imise mode

Minimise mode did not factor in offsetTop, it now does and both affix mode and minimise mode were
being triggered 1px too late
  • Loading branch information
edoparearyee committed Feb 19, 2018
1 parent 8dfbacc commit 303b819
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
13 changes: 13 additions & 0 deletions src/app/scroll-collapse/scroll-collapse.directive.spec.ts
Expand Up @@ -100,6 +100,19 @@ describe('ScrollCollapseDirective', () => {
directive.calculateMinimiseMode({ scrollX: 0, scrollY: 99, width: 1366, height: 768 });
expect(directive.minimiseMode).toBeFalsy();
});

it('should factor in element offsetTop when calculating minimise mode', () => {
directive.originalHeight = 100;
directive.originalTop = 100;
directive.calculateMinimiseMode({ scrollX: 0, scrollY: 0, width: 1366, height: 768 });
expect(directive.minimiseMode).toBeFalsy();

directive.calculateMinimiseMode({ scrollX: 0, scrollY: 200, width: 1366, height: 768 });
expect(directive.minimiseMode).toBeTruthy();

directive.calculateMinimiseMode({ scrollX: 0, scrollY: 199, width: 1366, height: 768 });
expect(directive.minimiseMode).toBeFalsy();
});
});

describe('affix mode', () => {
Expand Down
4 changes: 2 additions & 2 deletions src/app/scroll-collapse/scroll-collapse.directive.ts
Expand Up @@ -185,7 +185,7 @@ export class ScrollCollapseDirective implements AfterViewInit, OnDestroy {
* @memberof ScrollCollapseDirective
*/
public calculateMinimiseMode(viewport: Viewport): void {
this.minimiseMode = viewport.scrollY > this.originalHeight;
this.minimiseMode = viewport.scrollY >= (this.originalHeight + this.originalTop);
}
/**
* Calculate if the user has scrolled pass the origin height of
Expand All @@ -194,7 +194,7 @@ export class ScrollCollapseDirective implements AfterViewInit, OnDestroy {
* @memberof ScrollCollapseDirective
*/
public calculateAffixMode(viewport: Viewport): void {
this.affixMode = viewport.scrollY > this.originalTop;
this.affixMode = viewport.scrollY >= this.originalTop;
}
/**
* Return current viewport values
Expand Down

0 comments on commit 303b819

Please sign in to comment.