1. window.devicePixelRatio
张鑫旭博客
附:window.devicePixelRatio
已支持 ** ie11 **
2. ie下的window.screen.deviceXDPI
和 window.screen.logicalXDPI
eviceXDPI
就是对应的设备上的物理像素,而 logicalXDPI
就是对应了设备独立像素的比例。估计标准的检测接口也只是基于 IE 这种方法的一种改进。这两个属性在 windows XP+ 以上的系统上的默认值都是 96,因为系统默认的就是 96dpi 。
3. window.outerWidth
和 window.innerWidth
outerWidth
返回的是窗口元素的外部实际宽度,innerWidth
返回的是窗口元素的内部实际宽度,这两个宽度都包含了滚动条在内的宽度。
实现函数 detectZoom ()
detectZoom 函数的返回值如果是 100 就是默认缩放级别,大于 100 则是放大了,小于 100 则是缩小了。实现代码如下:
function detectZoom (){
var ratio = 0,
screen = window.screen,
ua = navigator.userAgent.toLowerCase();
if (window.devicePixelRatio !== undefined) {
ratio = window.devicePixelRatio;
}
else if (~ua.indexOf('msie')) {
if (screen.deviceXDPI && screen.logicalXDPI) {
ratio = screen.deviceXDPI / screen.logicalXDPI;
}
}
else if (window.outerWidth !== undefined && window.innerWidth !== undefined) {
ratio = window.outerWidth / window.innerWidth;
}
if (ratio){
ratio = Math.round(ratio * 100);
}
return ratio;
};