首页 > 其他分享 >vue 适配不同分辨率显示问题

vue 适配不同分辨率显示问题

时间:2023-11-09 14:24:32浏览次数:32  
标签:vue 缩放 适配 分辨率 element handler let ._ 页面

  新建 js 文件 rem.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中

import Device from "/js/rem"//你的文件地址

  export default {
    name:'app',
    created(){
    new Device().init()
   }  
  
}

  

标签:vue,缩放,适配,分辨率,element,handler,let,._,页面
From: https://www.cnblogs.com/7788mmhh/p/17819632.html

相关文章

  • vue将前端的json文件上传到后台对应目录
    前端方法代码:/****@param{*}fileName文件名*@param{*}data要保存的json对象*@returns*/saveJsonFileToLocal(fileName,data){letfile=newFile([JSON.stringify(data)],`${fileName}.json`,{type:"application/json",});......
  • 多标签vuex
    vuex只有在第一次打开页面或页面刷新时会初始化,不受页面生命周期影响。在vue打开多标签页面共享vuex时,多个页面vuex单独不受影响,所以如果某个页签修改了vuex的值,其他页签并不会同步修改。多页签同步vuex的思路:监听页签选中状态,选中时判断当前vuex同步值与本地存储值,不相同调用mu......
  • vue 需要的loader
    vue-loadervue-loader是一个加载器,它能够将.vue文件转换为JavaScript模块。因为.vue文件可以包含template、style和script三种类型的代码,vue-loader需要将它们分别处理。然后将它们组合在一起,生成一个JavaScript模块。在Vue项目中,vue-loader扮演着非常重要的角色,因为.vue文件是V......
  • vue2,vue3的优缺点
    vue2:优点:vue2比较成熟,所以具有比较完善的第三方的插件和库的支持,和技术资源的支持和解决方案d的社区等缺点:对ts语法的支持有限vue2中difff算法遍历dom树的关系,优化程度较低vue3:优点:引入一些高级的api优化了diff算法,使得性能更好,包更小对ts的语法支持更好......
  • vue template的编译原理
    vuetemplate的编译原理就是vue框架底层对模板的编译过程,这个过程将最初的模板源码转换生成最终的语法抽象树(AST)具体步骤如下:模板编译器读入模板源码,将其词法分析成各个部分,这些部分包括html元素,vue指令,还有特殊属性等AST的gennerator组件将区分开的各个部分进行上下文解析,封......
  • uni-app vue3 获取元素报错问题
    关于uniapp中vue3使用uni.createSelectorQuery()时的this指向及查询结果说明_前端_谁凉了时光旧了少年-华为云开发者联盟(csdn.net)......
  • vue2项目使用vueAMap
    npminstallvue-amap-D在main.jsimportVueAMapfrom"vue-amap";Vue.use(VueAMap);VueAMap.initAMapApiLoader({key:"高德地图的key",//这里写你申请的高德地图的keyplugin:["AMap.Autocomplete","AMap.Geocoder","AMap.Geol......
  • 大屏展示技术栈:vue2+echarts+dataV
    1.大屏搭建使用的是dataV组件http://datav.jiaminghi.com/guide,使用dataV组件有如下注意点:a.修改配置项config中data的值,需要重新赋值configb.修改dataV某些内置样式,他有个固定的类2.登录界面动态背景,使用的是vanta.jsVanta.js-Animated3DBackgroundsForYourWebsite......
  • vue文件上传
    单文件上传前端部分:<template><br><a-fromlabel="上传文件"><a-inputtype="file"></a-input><a-button@click="upload"type="danger">上传</a-button></a-from></tem......
  • vue实现文件上传
    文件上传是web开发中一个常见的需求,Vue.js作为一款流行的前端框架,也提供了方便的方法来实现文件上传功能。在此,将详细讲解Vue.js如何实现文件上传。首先,我们需要准备一个简单的html页面来接收上传文件。下面是示例代码:<divid="app"><inputtype="file"ref="fileInput"@chang......