Vue3 解决电脑分辨率及缩放导致页面变形的问题

2023-11-12

Vue3 解决电脑分辨率不同导致的页面变形问题

前言

最近在做一个项目,突然发现由于调整电脑的分辨率导致页面变形的问题。正常电脑显示的是100%,当调整电脑缩放至125%时,页面发生变形,由于css设置问题,变形部分的页面设置不可拖拽和显示,严重影响项目功能和体验。所以,该问题亟待解决。同时,在解决问题的过程中,还遇到了由于分辨率不同导致的显示问题。一并记录

电脑缩放问题解决

  • 创建工具evicePixelRatio.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;
  • 在App.vue中导入
import DevicePixelRatio from '@/utils/DevicePixelRatio.js';
setup() {
	...
	onMounted(() => {
		new DevicePixelRatio().init();
	})
}

屏幕分辨率问题解决

  • 在App.vue中使用等比例放缩
const bodyScale = () => {
      var devicewidth = document.documentElement.clientWidth;//获取当前分辨率下的可是区域宽度
      var scale = devicewidth / 1920; // 分母——设计稿的尺寸
      document.body.style.zoom = scale;//放大缩小相应倍数
}
setup() {
	...
	onMounted(() => {
		bodyScale();
	})
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue3 解决电脑分辨率及缩放导致页面变形的问题 的相关文章

  • require('babel/register') 不起作用

    我在客户端上有一个用 ES6 编写的同构应用程序Babel 转译器 http babeljs io 我希望我的 Express 服务器具有与客户端代码相同的 ES6 语法 很遗憾require babel register 不起作用 服务器
  • 在 iPad 上调试 Javascript

    我想知道人们是否找到了任何有用的工具来在未越狱的 iPad 上调试 javascript 这是一款用于工作的 iPad 因此无法越狱 通过一些繁琐的步骤 我已经在 iPad 上运行了 firebug lite 但是我的 javascript
  • Jquery文件上传插件进度条

    这个插件 https github com blueimp jQuery File Upload wiki管理网页中的文件上传 并且可以在上传过程中添加很多 UI 元素 您创建一个输入文件类型元素 然后绑定 js 文件 使用实例化代码和 w
  • 如何在单页应用程序中使用 #-URL?

    本文 http danwebb net 2011 5 28 it is about the hashbangs提出了一个非常令人信服的论点 因为 URL 是长期存在的 它们被添加书签并传递 所以它们应该是有意义的 并且使用哈希进行真正的路由
  • 有没有办法将 Google 文档分割成多个 PDF?

    我想在 Google Scripts VBA 代码中复制我为 Word 文档编写的代码 基本上 它通过搜索我插入文档中的标签 将文档 切片 为多个 PDF 文件 目的是允许合唱团使用 forScore 管理乐谱的应用程序 在切片点插入先前注
  • 通过 Javascript 更改 Webkit 属性?

    请帮助我 可能是因为我对 CSS 动画和 Javascript 相当陌生 但我使用的代码应该更改它的属性 当我运行代码时 它会执行代码中的所有其他操作 除了更改所需 div 的 CSS 属性 我已经尝试了所有这四种方法 但似乎都不起作用 它
  • 我可以用一个简单的函数制作一个迭代器吗? (没有生成器或 Symbol.iterator)

    我一直在尝试使用普通函数创建一个迭代器 而不使用生成器或使用Symbol iterator用于学术目的的协议 为此 我创建了一个函数 它返回一个带有next参数 但尝试将其作为iterable的论证for of循环会产生不需要的结果 这是到
  • “move(-1)”作为 AngularJS 表达式有什么问题吗?

    我收到此错误 parse ueoe Unexpected end of expression move 从这段代码来看
  • 处理时区转换的 JavaScript 库

    是否有一个 JavaScript 库可以处理时区转换 并考虑 DST 规则和此类内容 我知道有类似的问题 但我见过的问题似乎都没有真正适合我的问题的答案 我想在时区 A 创建一个日期并能够对其进行操作 添加天数 小时等 然后将其转换为另一个
  • Moment.js 动态更新时间(以秒为单位)

    我试图显示时钟 that 每秒更新一次 e g 2015 年 1 月 5 日 12 05 01 它似乎对我来说工作得很好 对于相同的代码 并且只有 moment min js 指向v2 11 0 看看代码 来源 MilkyWayJoe va
  • 使用淘汰赛动态显示/隐藏元素

    我有一个表 有四列 即代码 名称 数量和价格 其中 我想动态更改数量列的内容 元素 通常 它应该显示其中显示数量的元素 当用户单击元素时 我想显示该元素 以便用户可以编辑数量 我正在尝试按照 示例2 来实现淘汰赛文档链接 http knoc
  • dc lineChart 单击时弹出数据点信息

    我正在尝试检测折线图数据点上的点击 Per this answer dc scatter plot binding onClick event https stackoverflow com a 22772340 1873386 I am
  • 获取输入图像类型选择的图片并加载到图像标签中

    所以 我有一个用于上传 img 文件的输入框 我想要做的是从该数据 或选定的源 中获取数据并将其路由到图像标签的 src 属性中 像这样的东西 http jsfiddle net QC2c4 http jsfiddle net QC2c4
  • 如何将OpenLayers多边形坐标转换为纬度和经度?

    我正在使用开放层 https openlayers org en latest examples draw freehand html绘制多边形并保存坐标的技术 这是我的代码 var raster new ol layer Tile sou
  • Flask 和 Reactjs 抛出 JSX 转换错误

    我已经开始将 ReactJS 与 Python Flask 后端结合使用 通过 Flask 渲染模板时 我在 Chrome 控制台中收到以下客户端错误 错误 找不到模块 jstransform visitors es6 templates
  • 如何处理 setTimeout() 的多个实例?

    阻止创建 setTimeout 函数的多个实例 在 JavaScript 中 的最推荐 最佳方法是什么 一个例子 伪代码 function mouseClick moveDiv div 0001 mouseX mouseY function
  • 如何使用 API 中的数据填充选择的下拉元素 - ReactJS

    我对 React 还很陌生 我正在从 API 获取数据 当我检查控制台日志时可以看到数据 但是我不知道如何使用 map 创建一个新数组 然后选项元素可以使用该数组来显示货币代码 目前它填充下拉列表 但选项元素全部为空 结果显示为 NaN 下
  • 检测 html 选择框上的编程更改

    有没有办法让 HTML 选择元素在每次以编程方式更改其选择时调用函数 当使用 JavaScript 修改选择框中的当前选择时 IE 和 FF 都不会触发 onchange 此外 更改选择的 js 函数是框架的一部分 因此我无法更改它以在结束
  • 如何在react.js中将/n替换为换行符?

    我正在尝试更换每一个 n to a br tag in ReactJS In my note note对象有一个包含多个的字符串 n in it 示例注释 注释 test ntest ntest 我尝试过的ReactJS note note
  • 尽管 getBoundingClientRect() 是假的,但如何将事件坐标转换为 SVG 坐标?

    我正在尝试根据鼠标的位置在 SVG 元素上动态绘制内容 不幸的是 我很难将 mousemove 事件中的鼠标坐标转换为 SVG 元素的坐标空间 这是我一直在测试的一个有缺陷的函数 CylinderDemo prototype handleM

随机推荐

  • 虚拟化磁盘模式、数据存储详解

    虚拟化磁盘模式 数据存储详解 1 配置模式 1 1 普通 1 2 普通延迟置零 1 3 精简 2 磁盘模式 2 1 从属 2 2 独立 持久 2 3 独立 非持久 3 数据存储 3 1 虚拟化类型数据存储 3 2 非虚拟化类型数据存储 3
  • Web和HTTP

    目录 HTTP概况 Web术语 HTTP基本 HTTP是无状态协议 HTTP连接方式 非持续连接HTTP 例子 花费时间 持续连接的HTTP 非持续的缺点 HTTP报文格式 请求报文 HTTP请求报文的通用格式 及GET POST HEAD
  • 性能测试基础

    性能测试基础知识 性能测试的定义 衡量软件的性能需要考虑的三点内容 性能测试的分类 压力测试 负载测试 容量测试 强度测试 配置测试 基准测试 并发测试 性能指标 响应时间 吞吐量 服务器资源占用 以下内容比较枯燥 但是作为基础无法绕开 就
  • Kuebernetes之DaemonSet

    DaemonSet确保集群中每个 部分 node运行一份pod副本 当node加入集群时创建pod 当node离开集群时回收pod 如果删除DaemonSet 其创建的所有pod也被删除 DaemonSet中的pod覆盖整个集群 当需要在集
  • SpringBoot项目实现增删改查

    接上一章 Java 连接MySql 原你是阳光 O 的博客 CSDN博客 实现单表增删改查 引入依赖
  • JVM调优

    1 JVM运行时数据区 2 基础 1 类加载器 2 双亲委派 2 沙箱机制 3 垃圾回收算法 1 引用计数 2 复制 3 标记清除 4 标记整理 4 GCRoot 1 虚拟机栈中的引用对象 2 方法区中的类静态属性引用的对象 3 方法区中的
  • Python课堂练习

    文章目录 1 用for循环来计算1 2 3 100 2 用for循环来计算1 3 5 99 3 百钱买百鸡问题 采用三重循环 4 百钱买百鸡问题2 采用三重循环 5 采用for算令狐大侠喝了多少酒 6 采用for循环遍历序列 sequenc
  • Ubuntu升级python版本

    Ubuntu18 04的python3版本太低了 默认的python3版本为python3 6 我在安装mavros的时候 有一个包sympy需要 gt 1 10以上 但是需要的python版本为python3 8及更新版本 所以我就想把我
  • vue 假期工作日设置_假期申请第8天2月25日

    vue 假期工作日设置 It s that time again project week 又是时候了 项目周 This time around the project week started on Monday August 24th
  • centos7换源

    1 首先备份系统自带yum源配置文件 etc yum repos d CentOS Base repo mv etc yum repos d CentOS Base repo etc yum repos d CentOS Base repo
  • import cv2出现“ImportError: DLL load failed: 找不到指定的模块”

    2 1 将cv2 cp36 win amd64 pyd 文件复制一份 防止一会儿改完不行 又不知道原来是什么了 更改内容如下 import importlib from cv2 import 前面去掉点之后变成这样 from data im
  • 一文让你彻底了解Linux内核文件系统

    一 文件系统特点 文件系统要有严格的组织形式 使得文件能够以块为单位进行存储 文件系统中也要有索引区 用来方便查找一个文件分成的多个块都存放在了什么位置 如果文件系统中有的文件是热点文件 近期经常被读取和写入 文件系统应该有缓存层 文件应该
  • 用Go构建一个简单的区块链

    在本教程中 我将尝试通过帮助你在Go中编写简单的区块链来揭开区块链的广义概念 在本教程中 你应该能够 理解区块链术语 创建自己的简单区块链 了解什么是区块以及如何创建块 了解如何维护区块链的完整性 区块链 一种数字分类帐 以较小的集合排列
  • 数据诊断模型,该怎么搭建?

    你会用数据下判断吗 你怎么确定你的判断是准确的 现在业务说你判断错了 你怎么应对 用数据下判断 是看似简单 实则极大影响数据分析结果的一个问题 同样是本月销售业绩1000万 如果判断是 业绩很好 那么下一步的分析就是总结成功经验 如果判断是
  • 悟空crm php 部署,悟空crm开源版本环境搭建

    安装步骤 JDK需要预先安装 下载后执行install sh 链接 link 硬件配置 因为只有一台机器所以安装在一台机器上了 cpu 内存 硬盘 系统 8核 32G ssd100G centos7 基础软件 mysql安装 1 卸载mar
  • DataGrip数据库连接失败:DBMS: MySQL (无版本)区分大小写: 普通形式=mixed, 分隔形式=exactConnection refused: connect.

    查看任务管理器 服务 mysql服务是否正在运行 右键可控制关闭运行
  • 如何查看视图的sql语句

    select text from syscomments s1 join sysobjects s2 on s1 id s2 id where name 视图名称 前提条件是视图没有被加密 有权限 转载于 https www cnblogs
  • Flink on Zeppelin-1

    准备工作 下载Zeppelin 0 9 0 preview1 或者下载 除了下载Flink的标准release 如果你要使用Flink on Yarn模式或者连接Hive 那么你还需要下载其他Flink组件 flink hadoop com
  • AutoGPT太火了,无需人类插手自主完成任务,ChatGPT 已经过时了?

    转载自 机器之心Pro 原文链接 AutoGPT太火了 无需人类插手自主完成任务 GitHub2 7万星 OpenAI 的 Andrej Karpathy 都大力宣传 认为 AutoGPT 是 prompt 工程的下一个前沿 近日 AI 界
  • Vue3 解决电脑分辨率及缩放导致页面变形的问题

    Vue3 解决电脑分辨率不同导致的页面变形问题 前言 电脑缩放问题解决 屏幕分辨率问题解决 前言 最近在做一个项目 突然发现由于调整电脑的分辨率导致页面变形的问题 正常电脑显示的是100 当调整电脑缩放至125 时 页面发生变形 由于css