美文网首页
web屏幕适配

web屏幕适配

作者: 馨予务心竞 | 来源:发表于2024-02-17 18:24 被阅读0次

(一)原文:https://blog.csdn.net/JackieDYH/article/details/127628587

笔记本或者显示器 默认设置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

<script>

import DevicePixelRatio from './util/devicePixelRatio'

export default {

  name: 'App',

  data() {

    return {

    }

  },

  created() {

    new DevicePixelRatio().init()

  }

}

</script>

刷新页面

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

(二)原文地址:https://blog.csdn.net/chriscencen/article/details/127683217

前端解决web端 125%,150%缩放,1366*768分辨率兼容问题

最近做一个需求是在web项目中打开一个新的标签页,新的标签页是要适应大屏的,但是同时要适应125%,150%缩放,1366*768分辨率兼容。所以单独对这个页面进行了兼容处理

mounted () {

    window.addEventListener('resize', this.recalc, false);

    this.recalc();

  },

methods: {

    recalc () {

      // 解决 125%,150%缩放,1366*768分辨率兼容问题

      // domEl为需要缩放的页面的根元素

      const domEl = this.$refs.workingRef;

      if (!domEl) return;

      const { clientWidth, clientHeight } = document.documentElement || document.body || {};

      const scaleX = clientWidth / 1920;    // 分母是设计稿的宽度

      const scaleY = clientHeight / 1080;  // 分母是设计稿的高度

      domEl.style.transform = `scale(${scaleX})`;

      domEl.style.transformOrigin = "top left";

      // 按照宽度的比例缩放后底部会出现空白,再用marginBottom解决这个空白问题

      domEl.style.marginBottom = (scaleY - scaleX) * 1080 + 'px'; 

    },

}

beforeDestroy () {

    window.removeEventListener('resize', this.recalc);

  },

<style lang="scss" scoped>

.working {

  width: 1920px;

  height: 1080px;

}

</style>

相关文章

  • web多屏适配

    web屏幕适配(一):https://segmentfault.com/a/1190000004524243web...

  • 移动端像素及视口的理解

    聊聊移动端的适配 H5开发相对于PC端web的开发,可以不用兼容那么多浏览器了,但是需要适配各种屏幕尺寸的适配。 ...

  • 屏幕适配总结

    屏幕适配总结 为什么要针对屏幕做适配 drawable目录常见问题 : 屏幕适配方案:

  • Android屏幕适配-应用篇

    目录 Android屏幕适配-基础篇Android屏幕适配-应用篇 Android屏幕适配最主要的原因:  是由于...

  • 屏幕适配的那些坑

    屏幕适配的那些坑 屏幕适配的那些坑

  • LayaAir屏幕适配

    LayaAir屏幕适配 官方教程链接:LayaAir实战开发11-屏幕适配 屏幕适配 随着移动端设备(手机、平板、...

  • she

    1.适配的分类 系统适配 屏幕适配 1.1屏幕适配历史 1.1.1autoresizing 去掉auto layo...

  • Android屏幕适配

    一. 为什么要适配屏幕 android屏幕大小、屏幕密度碎片化严重 二. 怎么样适配屏幕 图片适配 应用图标提供不...

  • 屏幕适配AutoResizing

    适配器简介 AutoResizing 屏幕适配的历史 -iPhonestyGS\IPhone4 -没有屏幕适配可言...

  • css media 适配屏幕宽度

    H5 屏幕适配 css media 适配屏幕宽度;js 通过 适配获取屏幕宽度,来执行对应方法; max-widt...

网友评论

      本文标题:web屏幕适配

      本文链接:https://www.haomeiwen.com/subject/tfhpadtx.html