2015-03-06 25 views
6

window.devicePixelRatio sẽ trả về 1 hoặc 2 tùy thuộc vào việc tôi có đang sử dụng màn hình võng mạc hoặc tiêu chuẩn của mình hay không. Nếu tôi kéo cửa sổ giữa hai màn hình, thuộc tính này sẽ thay đổi. Có cách nào tôi có thể có một người nghe lửa khi sự thay đổi xảy ra?window.devicePixelTrình nghe thay đổi nhạc thay đổi

+0

tôi không có hai màn hình để kiểm tra điều này, nhưng tôi nghĩ rằng 'sự kiện resize' sẽ bị sa thải khi 'cập nhật window.devicePixelRatio'. – user2570380

+1

Chỉ cần thử nó, không cháy. –

Trả lời

9

Bạn có thể nghe truy vấn phương tiện với matchMedia sẽ cho bạn biết khi devicePixelRatio vượt qua một hàng rào nhất định (rất tiếc là không thay đổi quy mô tùy ý).

ví dụ:

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

Người nghe sẽ được gọi khi bạn kéo một cửa sổ giữa màn hình, và khi cắm vào hoặc rút một màn phi võng mạc bên ngoài (nếu nó gây ra cửa sổ để chuyển từ một võng mạc để màn hình không võng mạc hoặc ngược lại).

window.matchMedia được hỗ trợ trong IE10 + và all other modern browsers.

Tài liệu tham khảo: https://code.google.com/p/chromium/issues/detail?id=123694, MDN on min-resolution

Các vấn đề liên quan