UNPKG

@scqilin/screen-scaler

Version:

A powerful screen scaling adapter for big screen applications with TypeScript support

100 lines (99 loc) 2.08 kB
import type { ScaleMode, ScaleInfo, ScreenScalerConfig } from '../types'; export declare class ScreenScaler { private container; private wrapperContainer; private parentContainer; private config; private resizeHandler; private rafId; private isDestroyed; constructor(config: ScreenScalerConfig); /** * 设置容器结构 - 创建包裹容器 */ private setupContainerStructure; /** * 验证配置参数 */ private validateConfig; /** * 初始化缩放器 */ private init; /** * 设置ResizeObserver监听包裹容器尺寸变化 */ private setupResizeObserver; /** * 设置容器基础样式 */ private setupContainerStyles; /** * 处理窗口大小变化 */ private handleResize; /** * 获取包裹容器的可用尺寸 */ private getScreenSize; /** * 重置所有样式到初始状态 */ private resetStyles; /** * 默认模式 - 不做任何缩放处理 */ private scaleNone; /** * 等比缩放模式 */ private scaleAuto; /** * 宽度适配模式 */ private scaleWidth; /** * 高度适配模式 */ private scaleHeight; /** * 拉伸适配模式 */ private scaleStretch; /** * 执行缩放 */ setScale(): ScaleInfo; /** * 设置缩放模式 */ setMode(mode: ScaleMode): ScaleInfo; /** * 获取当前缩放模式 */ getMode(): ScaleMode; /** * 获取当前缩放信息 */ getScaleInfo(): ScaleInfo; /** * 更新设计尺寸 */ updateDesignSize(width: number, height: number): ScaleInfo; /** * 启用/禁用自动resize */ setAutoResize(enabled: boolean): void; /** * 设置缩放变化回调 */ setOnScaleChange(callback: (info: ScaleInfo) => void): void; /** * 销毁缩放器 */ destroy(): void; /** * 检查是否已销毁 */ isDestroyed_(): boolean; }