大屏自适应解决方案(手写js)

一、插件v-scale-screen

地址前端可视化大屏适配方案_前端大屏适配方案 vw vh 适配方案,当浏览器窗口变动时 实时适配-CSDN博客

二、

使用方法

javascript 复制代码
<div id="app"></div>
<script type="module" src="/src/main.ts">
import { autoScale } from './autoScale.js'
autoScale('#app', {
  width: 1920,
  height: 1080
})
  </script>

autoScale.js

javascript 复制代码
function debounce(fn, delay) {
let timer
return function () {
clearTimeout(timer);
timer = setTimeout(() => {
fn.apply(this, arguments);
}, delay);
};
}

export function autoScale(selector,options) {
const el = document.querySelector(selector);
const {width,height} = options; 

el.style.transformOrigin = "top left";
el.style.transition = "transform 0.5s"
function init(){
const scaleX = innerWidth / width
const scaleY = innerHeight / height
const scale = Math.min(scaleX, scaleY);

const left = (innerWidth - width * scale) / 2
const top = (innerHeight - height * scale) / 2
el.style.transform = ` translate(${left}px,${top}px) scale(${scale})`
}
init()
addEventListener("resize", debounce(init,200))
}
相关推荐
DoraBigHead3 分钟前
🧭 React 理念:让时间屈服于 UI —— 从同步到可中断的演化之路
前端·javascript·面试
千码君20166 分钟前
React Native:发现默认参数children【特殊的prop】
javascript·react native·ecmascript·react·组件树
敢敢J的憨憨L26 分钟前
GPTL(General Purpose Timing Library)使用教程
java·服务器·前端·c++·轻量级计时工具库
喝拿铁写前端38 分钟前
Vue 组件通信的两种世界观:`.sync` 与普通 `props` 到底有什么不同?
前端·vue.js·前端框架
美酒没故事°1 小时前
npm源管理器:nrm
前端·npm·npm源
用户22152044278001 小时前
vue3组件间的通讯方式
前端·vue.js
三十_A1 小时前
【实录】使用 patch-package 修复第三方 npm 包中的 Bug
前端·npm·bug
下位子1 小时前
『AI 编程』用 Claude Code 从零到一开发全栈减脂追踪应用
前端·ai编程·claude
tyro曹仓舒1 小时前
Vue单文件组件到底需不需要写name
前端·vue.js
用户47949283569151 小时前
面试官:讲讲2FA 双因素认证原理
前端·后端·安全