@scqilin/screen-scaler
Version:
A powerful screen scaling adapter for big screen applications with TypeScript support
56 lines (55 loc) • 1.28 kB
TypeScript
/**
* 缩放模式类型
*/
export type ScaleMode = 'none' | 'auto' | 'width' | 'height' | 'stretch';
/**
* 缩放信息接口
*/
export interface ScaleInfo {
mode: ScaleMode;
scale: {
x: number;
y: number;
ratio: number;
};
screen: {
width: number;
height: number;
};
design: {
width: number;
height: number;
};
scaled: {
width: number;
height: number;
};
offset: {
x: number;
y: number;
};
}
/**
* 配置接口
*
* @warning 容器样式注意事项
* 容器元素的 border、padding 等样式会影响尺寸计算,可能导致缩放计算错误。
* 建议保持容器样式简洁,或使用 box-sizing: border-box。
*/
export interface ScreenScalerConfig {
/**
* 容器元素或选择器
* @warning 避免在容器上使用 border、padding 等影响尺寸计算的样式
*/
container: HTMLElement | string;
/** 设计稿宽度 */
designWidth: number;
/** 设计稿高度 */
designHeight: number;
/** 缩放模式 */
mode?: ScaleMode;
/** 是否自动响应窗口变化 */
autoResize?: boolean;
/** 缩放变化回调 */
onScaleChange?: (info: ScaleInfo) => void;
}