mirror of
https://github.com/Terncode/pixel.horse.git
synced 2026-09-25 06:05:52 +02:00
* Revert "7f7efbb94bab8574e42d942ad82d414e007b2970" Code style changes should probably be part of a PR
23 lines
650 B
TypeScript
23 lines
650 B
TypeScript
import { Directive, ElementRef, Input, HostListener, HostBinding, Output, EventEmitter } from '@angular/core';
|
|
|
|
@Directive({
|
|
selector: '[fixToTop]',
|
|
})
|
|
export class FixToTop {
|
|
@Input() fixToTopOffset = 0;
|
|
@Output() fixToTop = new EventEmitter<boolean>();
|
|
@HostBinding('class.fixed-to-top') fixed = false;
|
|
constructor(private element: ElementRef) {
|
|
}
|
|
@HostListener('window:scroll')
|
|
scroll() {
|
|
const element = this.element.nativeElement as HTMLElement;
|
|
const { top } = element.getBoundingClientRect();
|
|
|
|
if (this.fixed !== top < this.fixToTopOffset) {
|
|
this.fixed = top < this.fixToTopOffset;
|
|
this.fixToTop.emit(this.fixed);
|
|
}
|
|
}
|
|
}
|