import {Directive, Input, Output, EventEmitter, HostListener, ElementRef} from 'angular2/core'; @Directive({ selector: '[scrollPosition]' }) export class ScrollPosition { @Input() maxHeight:Number; @Output() scrollChange:EventEmitter = new EventEmitter(); private _isScrolled:Boolean; ngOnInit() { this.onWindowScroll(); } @HostListener('window:scroll') onWindowScroll():void { let isScrolled = window.scrollY > this.maxHeight; if (isScrolled !== this._isScrolled) { this._isScrolled = isScrolled; this.scrollChange.emit(isScrolled); } } }