[common] check pixel ratio via common function

This commit is contained in:
Maxim Kadushkin 2021-02-10 23:43:49 +03:00
parent 5330e3a3c8
commit 839d9e67e3

View file

@ -119,48 +119,21 @@ Common.Utils = _.extend(new(function() {
isMobile = /android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent || navigator.vendor || window.opera), isMobile = /android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent || navigator.vendor || window.opera),
me = this, me = this,
checkSize = function() { checkSize = function() {
var str_mq_150 = "screen and (-webkit-min-device-pixel-ratio: 1.5) and (-webkit-max-device-pixel-ratio: 1.9), " + var scale = window.AscCommon.checkDeviceScale();
"screen and (min-resolution: 1.5dppx) and (max-resolution: 1.9dppx)"; var $root = $(document.body);
var str_mq_200 = "screen and (-webkit-min-device-pixel-ratio: 2), " + if ( scale.devicePixelRatio > 1 && scale.devicePixelRatio <= 1.5 ) {
"screen and (min-resolution: 2dppx), screen and (min-resolution: 192dpi)"; $root.removeClass('pixel-ratio__2');
if ( window.matchMedia(str_mq_150).matches ) { $root.addClass('pixel-ratio__1_5');
$(document.body).addClass('pixel-ratio__1_5');
$(document.body).removeClass('pixel-ratio__2');
} else } else
if ( window.matchMedia(str_mq_200).matches ) { if ( scale.devicePixelRatio > 1.5 && scale.devicePixelRatio < 2 ) {
$(document.body).addClass('pixel-ratio__2'); $root.addClass('pixel-ratio__2');
$(document.body).removeClass('pixel-ratio__1_5'); $root.removeClass('pixel-ratio__1_5');
} else { } else {
$(document.body).removeClass('pixel-ratio__1_5'); $root.removeClass('pixel-ratio__1_5 pixel-ratio__2');
$(document.body).removeClass('pixel-ratio__2');
} }
me.zoom = 1; // me.innerWidth = window.innerWidth * me.zoom;
if (false && isChrome && !isOpera && !isMobile && document && document.firstElementChild && document.body) { // me.innerHeight = window.innerHeight * me.zoom;
// делаем простую проверку
// считаем: 0 < window.devicePixelRatio < 2 => _devicePixelRatio = 1; zoom = window.devicePixelRatio / _devicePixelRatio;
// считаем: window.devicePixelRatio >= 2 => _devicePixelRatio = 2; zoom = window.devicePixelRatio / _devicePixelRatio;
if (window.devicePixelRatio > 0.1) {
if (window.devicePixelRatio < 1.99)
{
var _devicePixelRatio = 1;
me.zoom = window.devicePixelRatio / _devicePixelRatio;
}
else
{
var _devicePixelRatio = 2;
me.zoom = window.devicePixelRatio / _devicePixelRatio;
}
// chrome 54.x: zoom = "reset" - clear retina zoom (windows)
//document.firstElementChild.style.zoom = "reset";
document.firstElementChild.style.zoom = 1.0 / me.zoom;
}
else
document.firstElementChild.style.zoom = "normal";
}
me.innerWidth = window.innerWidth * me.zoom;
me.innerHeight = window.innerHeight * me.zoom;
}; };
me.zoom = 1; me.zoom = 1;
me.innerWidth = window.innerWidth; me.innerWidth = window.innerWidth;