【Vue3】解决电脑分辨率125%、150%及缩放导致页面变形的问题
最近在做一个项目,突然发现由于调整电脑的分辨率导致页面变形的问题。正常电脑显示的是100%,当调整电脑缩放至125%时,页面发生变形,由于css设置问题,变形部分的页面设置不可拖拽和显示,严重影响项目功能和体验。在解决问题的过程中,还遇到了由于分辨率不同导致的显示问题。
最后通过百度解决了问题,记录一下放置下次遇到。
电脑缩放问题解决
1.创建文件 DevicePixelRatio.js
/**
* @description 校正windows页面在系统进行缩放后导致页面被放大的问题,通常放大比例是125%、150%
* **/
class DevicePixelRatio {
constructor() {
}
//获取系统类型
_getSystem() {
let flag = false;
var agent = navigator.userAgent.toLowerCase();
if(agent.indexOf("windows") >= 0) {
return true;
}
}
//获取页面缩放比例
_addHandler(element, type, handler) {
if(element.addEventListener) {
element.addEventListener(type, handler, false);
} else if(element.attachEvent) {
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
}
//校正浏览器缩放比例
_correct() {
let t = this;
//页面devicePixelRatio(设备像素比例)变化后,计算页面body标签zoom修改其大小,来抵消devicePixelRatio带来的变化。
document.getElementsByTagName('body')[0].style.zoom = 1 / window.devicePixelRatio;
}
//监听页面缩放
_watch() {
let t = this;
t._addHandler(window, 'resize', function() { //注意这个方法是解决全局有两个window.resize
//重新校正
t._correct()
})
}
//初始化页面比例
init() {
let t = this;
if(t._getSystem()) { //判断设备,目前只在windows系统下校正浏览器缩放比例
//初始化页面校正浏览器缩放比例
t._correct();
//开启监听页面缩放
t._watch();
}
}
}
export default DevicePixelRatio;
2.在App.vue中导入
import DevicePixelRatio from '@/utils/DevicePixelRatio.js';
setup() {
...
onMounted(() => {
new DevicePixelRatio().init();
})
}
屏幕分辨率问题解决
1.在App.vue中使用等比例放缩
const bodyScale = () => {
var devicewidth = document.documentElement.clientWidth;//获取当前分辨率下的可是区域宽度
var scale = devicewidth / 1920; // 分母——设计稿的尺寸
document.body.style.zoom = scale;//放大缩小相应倍数
}
setup() {
...
onMounted(() => {
bodyScale();
})
}
下班~
【Vue3】解决电脑分辨率125%、150%及缩放导致页面变形的问题的更多相关文章
- javaSript 处理电脑和浏览器pc端缩放对页面的影响
由于用户的个人习惯或其他原因,可能会调整到电脑上的缩放比例或者浏览器的缩放比例,如果访问页面会看起来比较不好看, 电脑上的缩放: 浏览器上的缩放: 解决方法: function detectZoom( ...
- Response.Write输出导致页面变形和页面白屏解决办法
方法一:此方法应该是微软官方推荐的方法,但弹出时会造成页面白屏.Page.RegisterStartupScript("TestEvent", "<script&g ...
- Nginx下完美解决WordPress的伪静态 (wordpress 迁移后 导致 页面404)
直奔主题 如何设置WordPress在 Nginx下的伪静态 第一步:按照文章名为例,登陆后台按照箭头顺序修改固定连接,点击保存更改 第二步:登陆宝塔面板后台,按照文件路径 找到属于要配置域名的con ...
- 解决电脑访问Discuz!手机版(支持触屏版)
discuz电脑访问手机版的方法现在需要来修改一下2个文件,即可用电脑浏览discuz的手机版本:找到./source/function/function_core.php 文件,查找 : funct ...
- 180508 - 解决有关VIVO的2018-04-01安全补丁导致的APP闪退问题
解决有关VIVO的2018-04-01安全补丁导致的APP闪退问题 [√]问题原因猜测4: 最终解决方案 [√]问题原因猜测3: 尝试解决 [√成功] [×]问题原因猜测2: 尝试解决 [×失败] [ ...
- 导致页面顶部空白一行解决方法 【】
2016年11月7日10:57:10 模板文件生成html文件之后会在body开头处加入一个可见的控制符,导致页面头部会出现一个空白行.原因是页面的编码是UTF-8 + BOM. ...
- 导致页面顶部空白一行解决方法
模板文件生成html文件之后会在body开头处加入一个可见的控制符,导致页面头部会出现一个空白行.原因是页面的编码是UTF-8 + BOM. 这种编码方式一般会在windows操 ...
- html5新特性:利用history的pushState等方法来解决使用ajax导致页面后退和前进的问题
一.背景 使用ajax,可以实现不需要刷新整个页面就可以进行局部页面的更新.这样可以开发交互性很强的富客户端程序,减少网络传输的内容.但长期以来存在一个问题,就是无法利用浏览器本身提供的前进和后退按钮 ...
- 解决:对 PInvoke 函数的调用导致堆栈不对称问题
解决:对 PInvoke 函数的调用导致堆栈不对称问题 问题描述: 在使用托管代码调用非托管代码时,发生“对 PInvoke 函数“UseTwiHikVisionDllTest!UseTwiHikVi ...
- Response.Write()方法响应导致页面字体变大的解决办法
关于ASP.NET中用Response.Write()方法响应导致页面字体变大的解决办法 最近研究了ASP.NET,发现一个问题,比方说在页面里面有个Button,要点击以后要打开新窗口,而且 ...
随机推荐
- 浅谈iPaaS对企业转型的重要性
面对数字化转型的大浪潮,众多企业都期望着能快速实现全面的数字化转型,让企业在日益激烈的竞争中拥有更稳的市场地位,提升自身的实力及能力,奠定更坚实的基底.但在数字化转型过程中,部分企业数字化基础水平较薄 ...
- Maui 实践:不要把 DataPackagePropertySetView 看作一层皮
-- 再论为控件动态扩展 DragDrop 能力 夏群林 原创 2025.7.18 一.Drag / Drop 之间传递的参数 前文提到,拖放的实现需要 DragGestureRecognizer 与 ...
- adb 指令大全
adb 指令 指令 说明 adb devices 查看连接设备 adb shell ps 查看进程 adb shell settings get secure android_id android_i ...
- mt19937 简单介绍
简介 mt19937 是一种伪随机数生成器.其随机数质量,随机数范围与常数都比同为随机数生成器的 rand 优秀得多. 定义 mt19937 myrand(time(0)); 上述的代码定义了一个以时 ...
- 【OpenSSL】哈希、非对称加密和对称加密函数使用
1.哈希 1.1 md5的使用 头文件 #include <openssl/md5.h> #include <openssl/sha.h> MD5 散列值的长度 # defin ...
- D - Tokitsukaze and Multiple
https://vjudge.net/contest/386223#problem/D Tokitsukaze has a sequence of length nn, denoted by aa ...
- SharpZipLib 中文乱码
System.Text.Encoding encode = System.Text.Encoding.GetEncoding("gbk");ZipStrings.CodePage ...
- 信而泰RENIX 802.1ag功能介绍-网络测试仪实操
一.EOAM概述 1.以太网 1.1以太网优点 简单易用 价格低廉 高拓展性 大势所趋,一统天下 1.2以太网缺点 可管理性差 定位故障手段少 定位故障速度慢 维护成本高 ...
- 【推荐+1】HarmonyOS官方模板优秀案例 (第4期:餐饮行业 · 美食菜谱)
鸿蒙生态为开发者提供海量的HarmonyOS模板/组件,助力开发效率原地起飞 ★ 一键直达生态市场组件&模板市场 , 快速应用DevEco Studio插件市场集成组件&模板 ★ 好用 ...
- 【转】最优日志系统,Log4j 还是 Logback?
引言 在 Java 项目开发中,一个正式的项目,一定离不开日志的输出,而常用的日志输出框架又绕不开 Log4j 和 Loback. Log4j Apache Log4j 是一种 Java 日志记录工具 ...