Как обнаружить уровень масштабирования страницы во всех современных браузерах?

Используйте тот же Python3 для запуска вашего файла app.py.

, чтобы убедиться, что вы используете ту же версию Python, я рекомендую вам сделать следующее:

$ python --version  
  python X.X

$ pythonX.X -m pip install pymsql

$ python app.py
296
задан Community 23 May 2017 в 00:31
поделиться

3 ответа

Имейте это в настоящее время работающий однако все еще должно отделиться браузером. Протестированный успешно на Chrome (75) и Safari (11.1) (не нашли путь к FF на данный момент). Это также получает значение масштабирования, корректное на дисплее Retina, и вычисления включаются, изменяют размеры события.

    private pixelRatio() {
      const styleString = "(min-resolution: 2dppx), (-webkit-min-device-pixel-ratio: 1.5),(-moz-min-device-pixel-ratio: 1.5),(min-device-pixel-ratio: 1.5)";
      const chromeRatio = (Math.round((this.window.outerWidth / this.window.innerWidth)*100) / 100);
      const otherRatio = (Math.round(window.devicePixelRatio * 100) / 100);
      const resizeValue = (this.isChrome()) ? chromeRatio : otherRatio;

      return resizeValue || (this.window.matchMedia && this.window.matchMedia(styleString).matches ? 2 : 1) || 1;
    }


  private isChrome():boolean {
    return (!!this.window.chrome && !(!!this.window.opera || this.window.navigator.userAgent.indexOf(' Opera') >= 0))
  }

  private chrome() {
    const zoomChrome = Math.round(((this.window.outerWidth) / this.window.innerWidth)*100) / 100;
    return {
      zoom: zoomChrome,
      devicePxPerCssPx: zoomChrome1 * this.pixelRatio()
    };
  }
0
ответ дан Yogi 23 November 2019 в 01:34
поделиться

здесь не меняется!:

<html>
 <head>
  <title></title>
 </head>
<body>
 <div id="xy" style="width:400px;">
  foobar
 </div>
 <div>
  <button onclick="alert(document.getElementById('xy').style.width);">Show</button>
 </div>
</body>
</html>

создайте простой html файл, нажмите на кнопку. независимо от того, какой уровень масштабирования: он покажет вам ширину 400 пикселей (по крайней мере, с firefox и ie8)

-1
ответ дан 23 November 2019 в 01:34
поделиться

Ваши расчеты по-прежнему основаны на количестве пикселей CSS. Теперь они просто другого размера на экране. Это и есть точка полного масштабирования страницы.

Что бы вы хотели сделать в браузере на устройстве с разрешением 192 точек на дюйм, которое, следовательно, обычно отображает четыре пикселя устройства на каждый пиксель изображения? При 50% масштабировании это устройство теперь отображает один пиксель изображения в одном пикселе устройства.

1
ответ дан 23 November 2019 в 01:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: