UNPKG

gtht-miniapp-sdk

Version:

gtht-miniapp-sdk 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库

86 lines (85 loc) 3.47 kB
export type ScrollIntoViewPosition = 'start' | 'center' | 'end' | 'nearest'; export interface ScrollIntoViewOptions { position?: ScrollIntoViewPosition; startOffset?: number; endOffset?: number; duration?: number; } /** * 根据最后位置计算 page 滚动到顶部的值。 * * 也可计算水平方向的滚动值。 * * page * ╱ * ╭───────────────╮ viewport * ╭─│─ ─ ─ ─ ─ ─ ─ ─│─╮ ╱ * │ │ ╭───────────╮ │ │ * │ │ │ element │ │ │ * │ │ ╰───────────╯ │ │ * ╰─│─ ─ ─ ─ ─ ─ ─ ─│─╯ * │ │ * │ │ * ╰───────────────╯ * * @param {number} viewportHeight viewport 高度 * @param {number} viewportScrollTop viewport 垂直滚动值 * @param {number} elementHeight element 高度 * @param {number} elementOffsetTop element 距离页面顶部距离 * @param {string} options.position element 在 viewport 中的位置,可选:'start' | 'center' | 'end' | 'nearest' * @param {number} options.startOffset element 距离视窗顶部的偏移量 * @param {number} options.endOffset element 距离视窗底部的偏移量 * @return {number} viewport 新的垂直滚动值 */ export declare function getScrollIntoViewValue(viewportHeight: number, viewportScrollTop: number, elementHeight: number, elementOffsetTop: number, options?: ScrollIntoViewOptions): number; export interface NodeRect { top: number; right: number; bottom: number; left: number; height: number; width: number; } export interface MatchScrollVisibleOptions { offset?: number; errorValue?: number; } /** * 匹配元素列表中第一个位于滚动盒子可视区域的元素 * * @param {array} rects NodeRect 类型数组 * @param {function} callback 匹配成功时调用,会接收匹配的元素的下标 * @param {number} options.offset 偏移量 * @param {number} options.errorValue 容错值 */ 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]; export interface Point { x: number; y: number; } /** * 获取两点间的距离 */ export declare function getTwoPointsDistance(p1: Point, p2: Point): number; interface Rect { x: number; y: number; width: number; height: number; } /** * @description: 根据原始坐标尺寸和缩放后的坐标尺寸算出转换的原点 * @param {Rect} rect * @param {Rect} scaleRect * @return {[number, number]} */ export declare function getTransformOrigin(rect: Rect, scaleRect: Rect): [number, number]; export {};