• vue项目适配屏幕分辨率与屏幕的缩放适配详细教程


    目录

    • 解决方案
      • 全局导入App.vue
      • 刷新页面

    笔记本或者显示器 默认设置125%或者150%缩放,导致布局错乱的解决方法

    现在很多14寸的笔记本,出厂默认就是150%的显示。导致很多时候我们的项目,自己开发的时候都是按照100%比例来开发的,上线了就会发现这个问题

    解决方案

    vue项目utils下新建devicePixelRatio.js文件

    class DevicePixelRatio {
      constructor() {
        // this.flag = false;
      }
      // 获取系统类型
      _getSystem() {
        // let flag = false;
        var agent = navigator.userAgent.toLowerCase();
        //		var isMac = /macintosh|mac os x/i.test(navigator.userAgent);
        //		if(isMac) {
        //			return false;
        //		}
        // 现只针对windows处理,其它系统暂无该情况,如有,继续在此添加
        if (agent.indexOf("windows") >= 0) {
          return true;
        }
      }
      // 获取页面缩放比例
      //	_getDevicePixelRatio() {
      //		let t = this;
      //	}
      // 监听方法兼容写法
      _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

    
    

    刷新页面

    不管怎么缩放,125%还是150%,页面都不会去缩放了,就不会出现错乱的问题了

    到此这篇关于vue项目屏幕分辨率与屏幕的缩放适配-教程的文章就介绍到这了,更多相关vue 屏幕分辨率内容请搜索云海天教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持云海天教程!

  • 相关阅读:
    HTML5期末考核大作业网站——卫生与健康HTML+CSS+JavaScript
    如何使用CSS实现一个带有动画效果的折叠面板(Accordion)?
    19.在springboot中集成dubbo(zookeeper)
    QGIS编译(跨平台编译)之五十七:Qt Creator环境下qgis_app库的pro文件
    Can We Edit Multimodal Large Language Models?
    ArcMap镶嵌数据集的创建、数据导入与数据范围修改方法
    Go编译原理系列7(Go源码调试)
    Linux程序的地址空间
    Airtest新手升级:一个相对完整的纯.py脚本是怎样子的
    如何利用考培系统进行个性化学习和评估
  • 原文地址:https://blog.csdn.net/weixin_44692055/article/details/127843876