mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-23 19:02:29 +03:00
33 lines
1.0 KiB
JavaScript
33 lines
1.0 KiB
JavaScript
|
import Component from '@ember/component';
|
||
|
import {run} from '@ember/runloop';
|
||
|
|
||
|
export default Component.extend({
|
||
|
tagName: '',
|
||
|
|
||
|
actions: {
|
||
|
initScrollWatch(element) {
|
||
|
this._onScroll = run.bind(this, this.onScroll, element);
|
||
|
this._scrollContainer = element.closest('.gh-main');
|
||
|
if (this._scrollContainer) {
|
||
|
this._scrollContainer.addEventListener('scroll', this._onScroll, {passive: true});
|
||
|
}
|
||
|
},
|
||
|
|
||
|
clearScrollWatch() {
|
||
|
if (this._scrollContainer) {
|
||
|
this._scrollContainer.removeEventListener('scroll', this._onScroll);
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
onScroll(element) {
|
||
|
if (this._isSticky && this._scrollContainer.scrollTop < 10) {
|
||
|
element.classList.remove('gh-canvas-header--sticky');
|
||
|
this._isSticky = false;
|
||
|
} else if (!this._isSticky && this._scrollContainer.scrollTop > 10) {
|
||
|
element.classList.add('gh-canvas-header--sticky');
|
||
|
this._isSticky = true;
|
||
|
}
|
||
|
}
|
||
|
});
|