sard-uniapp
Version:
sard-uniapp 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库
68 lines (63 loc) • 2.41 kB
TypeScript
export type ScrollIntoViewPosition = 'start' | 'center' | 'end' | 'nearest';
export interface ScrollIntoViewValueOptions {
position?: ScrollIntoViewPosition;
startOffset?: number;
endOffset?: number;
}
export interface ScrollIntoViewOptions {
position?: ScrollIntoViewPosition;
startOffset?: number;
endOffset?: number;
duration?: number;
}
/**
```
page
╱
╭───────────────╮ viewport
╭─│─ ─ ─ ─ ─ ─ ─ ─│─╮ ╱
│ │ ╭───────────╮ │ │
│ │ │ element │ │ │
│ │ ╰───────────╯ │ │
╰─│─ ─ ─ ─ ─ ─ ─ ─│─╯
│ │
│ │
╰───────────────╯
```
# 参数
- viewportHeight: viewport 高度
- viewportScrollTop: viewport 垂直滚动值
- elementHeight: element 高度
- elementOffsetTop: element 距离页面顶部距离
# 选项
- position: element 在视窗中的位置(start, center, end, nearest)
- startOffset: element 距离视窗顶部的偏移量
- endOffset: element 距离视窗底部的偏移量
# 结果值
- viewportScrollTop: viewport 新的垂直滚动值
*/
export declare function getScrollIntoViewValue(viewportHeight: number, viewportScrollTop: number, elementHeight: number, elementOffsetTop: number, options?: ScrollIntoViewValueOptions): number;
export interface NodeRect {
top: number;
right: number;
bottom: number;
left: number;
height: number;
width: number;
}
interface MatchScrollVisibleOptions {
offset?: number;
errorValue?: number;
}
/**
* @description: 匹配元素列表中第一个位于滚动盒子可视区域的元素
*/
export declare function matchScrollVisible(rects: NodeRect[], callback: (index: number) => unknown, options?: MatchScrollVisibleOptions): Promise<unknown>;
export declare function getAspectFillSize(origWidth: number, origHeight: number, containerWidth: number, containerHeight: number): [number, number];
export declare function getAspectFitSize(origWidth: number, origHeight: number, containerWidth: number, containerHeight: number): [number, number];
interface Point {
x: number;
y: number;
}
export declare function getTwoPointsDistance(p1: Point, p2: Point): number;
export {};