这个功能可以自动检测Windows系统级别的显示缩放设置(如125%, 150%, 175%, 200%等),并使用多种智能策略来优化网页显示效果,避免了传统transform方案的文本模糊和布局问题。
src/utils/scaleManager.js
)src/layouts/DefaultLayout.vue
)src/styles/scale-adjustments.scss
)src/components/common/ScaleDebugInfo.vue
)src/pages/scale-test/Index.vue
)功能会在应用启动时自动启用,系统会根据浏览器环境自动选择最佳策略。
npm run dev
http://localhost:3000/scale-test
在开发环境中,页面右上角会显示缩放调试信息,包括:
import { onScaleChange } from '@/utils/scaleManager.js'
onScaleChange((scale) => {
console.log('当前缩放:', scale)
})
import { getScaleInfo } from '@/utils/scaleManager.js'
const info = getScaleInfo()
console.log('缩放信息:', info)
// {
// detected: 1.25, // 检测到的缩放比例
// counter: 0.8, // 反向缩放比例
// shouldApply: true, // 是否应该应用反向缩放
// percentage: 125 // 缩放百分比
// }
import { setScaleStrategy, setScaleEnabled } from '@/utils/scaleManager.js'
// 设置策略
setScaleStrategy('css') // 'css', 'viewport', 'hybrid', 'none'
// 启用/禁用缩放处理
setScaleEnabled(false)
系统会根据检测到的缩放比例设置CSS变量:
body[data-scale="125"] {
--base-padding: 16px;
--base-margin: 12px;
--header-height: 60px;
}
scale-adjustments.scss
是否正确引入可以通过环境变量控制功能:
# 禁用缩放检测
VITE_DISABLE_SCALE_DETECTION=true
# 禁用调试信息
VITE_HIDE_SCALE_DEBUG=true