@uiw/react-affix
Version:
Affix component
41 lines (40 loc) • 1.3 kB
TypeScript
import React from 'react';
import { IProps, HTMLDivProps } from '@uiw/utils';
export interface AffixProps extends IProps, Omit<HTMLDivProps, 'onChange'> {
/**
* 距离窗口顶部达到指定偏移量后触发
*/
offsetTop?: number;
/**
* 距离窗口底部达到指定偏移量后触发
*/
offsetBottom?: number;
target?: () => Window | HTMLElement | null;
/**
* 固定状态改变时触发的回调函数
*/
onChange?: (affixed?: boolean) => void;
}
export interface AffixState {
affixStyle?: React.CSSProperties;
placeholderStyle?: React.CSSProperties;
}
export default class Affix extends React.Component<AffixProps, AffixState> {
static defaultProps: AffixProps;
state: AffixState;
private box;
private target;
private readonly events;
private eventHandlers;
private timeout?;
constructor(props: AffixProps & HTMLDivProps);
componentDidMount(): void;
componentWillUnmount(): void;
updatePosition(): void;
setAffixStyle(affixStyle?: React.CSSProperties): void;
setPlaceholderStyle(placeholderStyle?: React.CSSProperties): void;
setTargetEventListeners(): void;
clearEventListeners(): void;
getInstance: (node: HTMLDivElement) => void;
render(): React.JSX.Element;
}