@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
44 lines (43 loc) • 1.66 kB
TypeScript
import { OnInit, EventEmitter, ElementRef, AfterViewInit, OnDestroy } from '@angular/core';
export declare type StickyStatus = 'normal' | 'follow' | 'stay' | 'remain';
export declare class StickyComponent implements OnInit, AfterViewInit, OnDestroy {
private el;
hostPosition: string;
zIndex: number;
container: Element;
view: {
top?: number;
bottom?: number;
};
scrollTarget: any;
statusChange: EventEmitter<StickyStatus>;
wrapper: any;
_prevStatus: StickyStatus;
_status: StickyStatus;
status: StickyStatus;
parentNode: any;
containerLeft: any;
private THROTTLE_DELAY;
private THROTTLE_TRIGGER;
private scrollPreStart;
private scrollTimer;
constructor(el: ElementRef);
ngOnInit(): void;
ngAfterViewInit(): void;
ngOnDestroy(): void;
statusProcess(status: any): void;
throttle: () => void;
scrollAndResizeHock: () => void;
scrollHandler: () => void;
calculateRelativePosition(element: any, relativeElement: any, direction: any): number;
calculateRemainPosition(element: any, relativeElement: any, container: any): number;
initScrollStatus(target: any): void;
/**
* 提供给业务自己触发
* 用法:
* 1.捕获所有sticky:```@ViewChildren(StickyComponent) stickies;```
* 2.触发刷新:当需要手动触发更新的时候,比如订阅数据返回后页面高度发生变化可以调用 ```stickies.forEach(sticky => sticky.recalculatePosition());```
* 慎用,少用, 使用太多会影响性能。
*/
recalculatePosition(): void;
}