devicePixelRatio:指显示器的物理像素分辨率与CSS像素分辨率之比;标准显示器该值为1;
对于HiDPI / Retina显示屏则期望值为2;比例越高,说明同一块大小区域里面填充的像素点越多,那自然越细腻,越清晰。
HiDPI:全称是High Dots Per Inch,字面意思就是「每英寸包含数量更多的像素」,通俗点讲就是分辨率特别高但是尺寸并不大的屏幕,在市场上被称为Retina(视网膜)屏幕。
作用:
(1) 更正canvas比例,能够适配标准显示器屏幕(96dpi)和高分辨率retina屏幕
var scale = window.devicePixelRatio; // Change to 1 on retina screens to see blurry canvas.
canvas.width = Math.floor(size * scale);
canvas.height = Math.floor(size * scale);
// Normalize coordinate system to use css pixels.
ctx.scale(scale, scale);
(2)监听屏幕分辨率改变或者浏览器缩放级别的改变
当改变显示器分辨率或者浏览器缩放级别时候,devicePixelRatio会更改为对应的值;