大屏适配方案

文章介绍了如何利用vw和vh单位进行容器布局,通过设置rem基准值实现像素到rem的转换,以及运用scale进行屏幕适配和防止缩放后的热区偏移。同时提供了一个动态调整缩放比例的示例,确保在不同尺寸屏幕上元素的位置和大小能正确显示。
摘要由CSDN通过智能技术生成

vw、vh

  • 将容器布局通过vw、vh设置
vwDiv = (300px / document.documentElement.clientWidth ) * 100vw

rem

  • 拿 1920 * 1080 的标准屏幕大小为例,将屏幕分为10份,先计算rem 的基准值: 1920 / 10 = 192
  • 把所有元素的长、宽、位置、字体大小等原来的 px 单位全部转换成 rem
  • 网页加载后,动态设置 html 的 font-size 为当前浏览器窗口宽度 / 10

scale

const handleScreenAuto = () => {
     const designDraftWidth = 1920;//设计稿的宽度
     const designDraftHeight = 960;//设计稿的高度
     //根据屏幕的变化适配的比例
     const scale = document.documentElement.clientWidth / document.documentElement.clientHeight < designDraftWidth / designDraftHeight ?
         (document.documentElement.clientWidth / designDraftWidth) :
         (document.documentElement.clientHeight / designDraftHeight);
     //缩放比例
     (document.querySelector('#screen') as any).style.transform = `scale(${scale}) translate(-50%,-50%)`;
 }
  • 解决缩放热区偏移问题

document.addEventListener('click', function (event) {
  // 假设缩放比例
  const scale = 1.5;

  // 获取点击事件的原始坐标
  const originalX = event.clientX;
  const originalY = event.clientY;

  // 计算相对坐标
  const relativeX = originalX / scale;
  const relativeY = originalY / scale;

  // 使用相对坐标进行后续处理
  console.log('相对坐标:', relativeX, relativeY);
});
大屏可视化适配flexible.js是一种通过使用CSS的transform属性来实现大屏适配的方法。其主要思路是通过计算固定的宽高比例,将大屏幕容器设置为一个参考元素,然后监听浏览器窗口的resize事件,在每次窗口大小改变后重新计算宽度和高度的比例。根据窗口的长宽比与固定的长宽比进行比较,如果窗口的长宽比更长,则根据窗口的高度值重新计算缩放比例,并使用transform的scale属性对大屏幕容器进行缩放操作,同时使用translate属性将容器移动到窗口的中央。同理,如果窗口的长宽比更短,则根据窗口的长度值计算缩放比例,并对大屏幕容器进行相应的缩放操作。通过这种方式,可以实现大屏幕的适配。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [Vue项目大屏可视化适配 transform+解决高德地图经纬度偏移](https://blog.csdn.net/qq_45642765/article/details/125988515)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Vue 可视化大屏适配方案](https://blog.csdn.net/Windyluna/article/details/122296831)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值