window.devicePixelRatio将返回1或2,具体取决于我使用的是视网膜显示器还是标准显示器。如果在两个监视器之间拖动窗口,此属性将更改。发生更改时,是否有办法让听众着火?

最佳答案

您可以使用matchMedia收听媒体查询,该查询将告诉您devicePixelRatio何时超过某个障碍(不幸的是,不是任意缩放比例)。

例如:

window.matchMedia('screen and (min-resolution: 2dppx)').
    addListener(function(e) {
      if (e.matches) {
        /* devicePixelRatio >= 2 */
      } else {
        /* devicePixelRatio < 2 */
      }
    });

当您在监视器之间拖动窗口时,以及插入或拔出外部非视网膜监视器时(如果它导致窗口从视网膜移动到非视网膜屏幕,反之亦然),将调用侦听器。

IE10 +和all other modern browsers支持window.matchMedia

引用:https://code.google.com/p/chromium/issues/detail?id=123694MDN on min-resolution

关于javascript - window.devicePixelRatio更改监听器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28905420/

10-12 18:05