前端 vue 解决按1920*1080设计图做的页面适配屏幕缩放并适配4K屏

news/2024/10/17 18:13:26/

提示:前端 vue 解决按1920*1080设计图做的页面适配屏幕缩放并适配4K屏

前端 vue 解决按1920*1080设计图做的页面适配屏幕缩放并适配4K屏

  • 说明
  • 一、首先是适配屏幕的缩放比
    • 1.在外部创建一个detectZoom.js文件,我是在utils文件夹下
    • 2.在main.js中引用
  • 二、解决4k屏幕的问题
    • 1.获取当前屏幕的分辨率
    • 2.根据不同屏幕和缩放比来调节zoom的比例


说明

公司项目做之前没有沟通好,按照1920*1080设计图做的页面,缩放比是100%,项目做完之后说要适配缩放比,并且 适配4k屏,然后就各种百度找办法。


一、首先是适配屏幕的缩放比

这种方法也是通过看别人发布的文章解决的,原来的地址在这:前端 解决笔记本屏幕显示缩放比例125% 150%对页面布局的影响
我是用的第二种方法,直接就粘过来了。

1.在外部创建一个detectZoom.js文件,我是在utils文件夹下

detectZoom.js文件代码如下:

export const detectZoom = () => {let ratio = 0,screen = window.screen,ua = navigator.userAgent.toLowerCase();if (window.devicePixelRatio !== undefined) {ratio = window.devicePixelRatio;} else if (~ua.indexOf('msie')) {if (screen.deviceXDPI && screen.logicalXDPI) {ratio = screen.deviceXDPI / screen.logicalXDPI;}} else if (window.outerWidth !== undefined &&window.innerWidth !== undefined) {ratio = window.outerWidth / window.innerWidth;}if (ratio) {ratio = Math.round(ratio * 100);}return ratio;
};

2.在main.js中引用

m是获取的当前屏幕的缩放比,在通过zoom属性对应缩放。
zoom属性用于设置或检索对象的缩放比例。

import { detectZoom } from '@/utils/detectZoom.js';
const m = detectZoom();
document.body.style.zoom = 100 / Number(m);

以上为解决屏幕缩放比的方法,在屏幕分辨率为1920*1080时可以解决。

二、解决4k屏幕的问题

在项目做完之后突然告知需要适配4k屏,并且4k屏的时候也会有屏幕缩放比,不想重新改页面样式就想了这个办法。也是通过zoom属性,原理就是通过整个body的缩放使系统的展示区域变成1920*1080

1.获取当前屏幕的分辨率

获取屏幕的宽:window.screen.width * window.devicePixelRatio
获取屏幕的高:window.screen.height * window.devicePixelRatio

2.根据不同屏幕和缩放比来调节zoom的比例

在main.js中 代码如下:

import { detectZoom } from '@/utils/detectZoom.js';const m = detectZoom();//判断屏幕是否为4k
if (window.screen.width * window.devicePixelRatio >=3840) {// switch (m) {//   // 4k屏时屏幕缩放比为100%//   case 100://     document.body.style.zoom = 100 / 50;//     break;//     // 4k屏时屏幕缩放比为125%//   case 125://     document.body.style.zoom = 100 / 62.5;//     break;//     // 4k屏时屏幕缩放比为150%//   case 150://     document.body.style.zoom = 100 / 75;//     break;//     // 4k屏时屏幕缩放比为175%//   case 175://     document.body.style.zoom = 100 / 87.4715;//     break;//     // 4k屏时屏幕缩放比为200%//   case 200://     document.body.style.zoom = 100 / 100;//     break;//     // 4k屏时屏幕缩放比为225%//   case 225://     document.body.style.zoom = 100 / 112.485;//     break;//   default://     break;// }document.body.style.zoom = 100 / (Number(m)/2);
}else{document.body.style.zoom = 100 / Number(m);
}

最后结果:虽然屏是4k的,但是系统展示页面的可视区域依旧是1920*1080的,页面样式也没有乱。


http://www.ppmy.cn/news/126452.html

相关文章

Unity Kinect开发之竖屏的追踪坐标转换(1080*1920)

我们做Unity的Kinect开发,其实好多情况下要用到竖屏这样的模式,然后你就会发现,怎么切换个竖屏,里面的追踪坐标怎么就不准了呢,这里面主要就是牵扯到坐标转换的问题。 我先是参考的这个示例来进行的测试,在…

imx6q HDMI输出1920x720@60分辨率支持

这次要搞的是一个imx6q的HDMI输出,外接一个HDMI转LVDS转接板(由单片机bypass转图像信号),然后接一个1920x720分辨率的LVDS屏幕,这个分辨率在imx的HDMI驱动里面没有支持,只有我们自己添加了。 IMX6的HDMI分辨率的输出在驱动中有一个…

Ubuntu16.04设置分辨率1920*1080

现在大部分电脑通用的分辨率是1920*1080,但是在使用Ubuntu16.04的时候发现并不支持改分辨率,所以可以通过以下操作进行分辨率的修改。 一、打开Ubuntu终端:快捷键CtrlAltT 二、输入命令:cvt 1920 1080 返回结果: 1…

《树莓派入门 (九) HDMI设置特殊分辨率1920*1920/1024*310》

场景 在使用树莓派的时候,难免遇到使用的屏幕出现那种不规则的或者特殊的分辨率,这次以京东方的屏幕1920*1920的分辨率处理,树莓派的配置显示参数的接口存放在/boot/的config.txt,知道位置,修改就好处理了 一、先了解下树莓派各…

deepin/UOS没有1920*1080

不知道各位有没有遇到deepin/UOS没有1920*1080分辨率的问题只能用1024*768今天就交你解决 首先打开终端 逐行输入以下命令 cvt 1920 1080 xrandr --newmode "1920x1080_60.00" xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 …

android 1920*1080分辨率,安卓APP设计规范之1080*1920设计稿对应开发尺寸

目前市场上,只有Android系统的手机才有1080P全高清的产品。1080P是说手机屏幕的分辨率达到1920*1080像素。1080P的屏幕最直观的改变当然是屏幕精细度的巨大提升,就算是5寸的屏幕,精细度也可以达到441ppi的超高级别。相当于苹果手机的iphone6的分辨率。 安卓系统5.0的风格是:…

html页面宽度1920,网页banner尺寸1920

网页设计设计过程中,banner图是整个网页中,图片面积最大,位置最显眼的区域,甚至一个好看的网站就取决于banner的设计。 现主流banner的尺寸主要是分为这三种,(推荐学习:web前端视频教程) 1.显示位置是固定尺…

图片1920x1080分辨率怎么调 ?图片如何修改分辨率?

图片是我们日常生活中经常需要使用到的东西,但是在使用图片时我们会遇到需要调图片分辨率的情况,有很多小伙伴对于图片分辨率这个概念并不了解,今天就来为大家具体介绍一下图片1920x1080怎么调以及怎么给图片修改分辨率,下面一起来…