美文网首页
如何检测浏览器的缩放比例?

如何检测浏览器的缩放比例?

作者: 莫帆海氵 | 来源:发表于2021-01-23 15:10 被阅读0次

在 pc 端浏览器访问的页面中想知道有哪些用户访问的页面是缩放的,用于数据上报,分析处理大多数

最简单的方法通过 dpr,校验是否是默认的比例,匹配 pc 端常用的 dpr 比例

let zoom = devicePixelRatio
let isZoom = zoom % 1 !== 0 && zoom % 2 !== 0

下面的示例能满足常用的 pc 浏览器的缩放检测

/**
 * 检测浏览器缩放
 *
 * 1. 不能检测 mac 下手势缩放的
 * 2. 适用于 pc 端浏览器
 * 3. 只检测部分的浏览器
 */
function DetectZoom() {
    let global = window

  function getBrowserName() {
    let e = navigator.userAgent.toLowerCase();
    if (global.ActiveXObject || 'ActiveXObject' in global) return 'ie'
    if (e.indexOf('firefox') >= 0) return 'firefox'
    if (e.indexOf('chrome') >= 0) return 'chrome'
    if (e.indexOf('safari') >= 0) return 'safari'
    return ''
  }

  function system() {
    var t = navigator.userAgent.toLowerCase();
    if (t.indexOf('win') >= 0) return 'win'
    if (t.indexOf('mac') >= 0) return 'mac'
    return ''
  }

  function round(number) {
    return Math.round(number * 100) / 100;
  }

  function ie() {
    return global.screen.deviceXDPI / global.screen.logicalXDPI;
  }

  function firefox() {
    return global.devicePixelRatio;
  }

  function chrome() {
    return global.devicePixelRatio;
  }

  function safari() {
    return global.outerWidth / global.innerWidth;
    }
    
  this.os = system()

  let detectFuncs = { ie: ie, firefox: firefox, opera: opera, chrome: chrome, safari: safari }
  let browserName = getBrowserName()
  let func = detectFuncs[browserName]

  if (func) {
    this.zoom = round(func());
  }
}

DetectZoom.prototype.isZoom = function () {
  if ('win' === this.os) {
    return 1 != this.zoom;
  }
  if ('mac' === this.os) {
    return this.zoom % 1 !== 0 && this.zoom % 2 !== 0;
  }

  return false;
}

更全面的检测可以参考下面:

相关文章

  • 如何检测浏览器的缩放比例?

    在 pc 端浏览器访问的页面中想知道有哪些用户访问的页面是缩放的,用于数据上报,分析处理大多数 最简单的方法通过 ...

  • iOS 图片按比例缩放

    1.按比例缩放。 2.指定宽度按比例缩放。

  • JS 获取浏览器显示比例,缩放比例

  • AI工具技巧

    一、比例缩放工具(S) 1.画一个想要的形状(比如星行),选中形状右击——变换(缩放)。有等比例缩放、不等比例缩放...

  • JS监听浏览器缩放比例

    JS监听浏览器缩放比例 点击打开视频讲解更加详细[https://www.bilibili.com/video/B...

  • 3D数学基础及图形开发(五)矩阵的线性变换-缩放和投影

    线性变换-缩放 缩放 2D的缩放,等比例的缩放,和不等比例的缩放。我们的缩放由于不改变旋转,我们使用对角矩阵来实现...

  • CSS

    hack写法,用来识别不同版本的IE浏览器:*zoom: 1; /* 设置对象缩放比例 .*/*后面的属性 IE6...

  • JS - 设置图片等比缩放

    直接上代码: 效果图:图片比例大于盒子比例, 等比缩放左右居中 图片比例小于盒子比例, 等比缩放上下居中 图片比例...

  • UIViewContentMode

    Scale 图片会缩放。Aspect 保持比例 UIViewContentModeScaleToFill缩放 不用...

  • Excel的缩放比例

    Excel中,鼠标滚动缩放的比例与工具栏上页面布局→缩放比例中的数字是不一样的。页面布局中的缩放比例是实际字号的放...

网友评论

      本文标题:如何检测浏览器的缩放比例?

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