ci4sManagement-cloud/react-ui/public/scripts/resize.js

45 lines
1.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// rem-resize.js
(function (doc, win) {
'use strict';
// 配置项
const config = {
designWidth: 1920, // 设计稿宽度
baseFontSize: 16, // 基础字体大小设计稿下1rem = 16px
minFontSize: 12, // 最小字体限制
maxFontSize: 18, // 最大字体限制
delay: 300, // 窗口变化时的延迟执行(ms)
};
const docEl = doc.documentElement;
const resizeEvt = 'orientationchange' in win ? 'orientationchange' : 'resize';
let resizeTimeout;
function calculateFontSize() {
const clientWidth = docEl.clientWidth || win.innerWidth;
if (!clientWidth) return;
const fontSize = Math.min(
Math.max((clientWidth / config.designWidth) * config.baseFontSize, config.minFontSize),
config.maxFontSize,
);
docEl.style.fontSize = fontSize + 'px';
// 可选:调试输出
if (win.console) {
console.debug('[REM-Resize]', 'width:', clientWidth, 'font-size:', fontSize + 'px');
}
}
function resizeHandler() {
clearTimeout(resizeTimeout);
resizeTimeout = setTimeout(calculateFontSize, config.delay);
}
calculateFontSize();
// 初始化监听
win.addEventListener(resizeEvt, resizeHandler, false);
})(document, window);