@scqilin/screen-scaler
Version:
A powerful screen scaling adapter for big screen applications with TypeScript support
100 lines (99 loc) • 2.08 kB
TypeScript
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;
}