Масштаб страницы

Рейтинг: 0Ответов: 2Опубликовано: 24.02.2023

Можно ли узнать текущий масштаб страницы ?

Ответы

▲ 1

Текущий масштаб страницы можно узнать с помощью devicePixelRatio. Вот так:

function getPageScale() {
  return Math.round(window.devicePixelRatio * 100)
}

let pageScale = getPageScale()

console.log(pageScale)

Если вы хотите узнать точное значение, просто уберите Math.round и его скобки соответственно. Сам devicePixelRatio, если исходить из MDN, devicePixelRatio является соотношением разрешения дисплея текущего устройства в физических пикселях к разрешению в логических (CSS) пикселях. Если немного порыскать в интернете, то можно себе сделать вот такой вот способ для IE7+:

console.log(getPageScale())

function getPageScale() {
  if(window.devicePixelRatio) {
    return roundify(window.devicePixelRatio)
  }

  return getPageScaleIE()
}

function getPageScaleIE() {
  if (window.screen.systemXDPI === void 0) {
    return getPageScaleIE7()
  }

  return roundify(window.screen.deviceXDPI / window.screen.logicalXDPI)
}

function getPageScaleIE7() {
  var node = document.body

  if(node.getBoundingClientRect) {
    var rect = node.getBoundingClientRect()
    var physicalWidth = rect.right - rect.left
    var logicalWidth = node.offsetWidth

    return roundify(physicalWidth / logicalWidth)
  }

  return 100
}

function roundify() {
  return Math.round(arguments[0] * 100)
}

Источники:

▲ 0

Скорее так:

console.log(outerWidth / innerWidth * 100)

А devicePixelRatio, это экран.