Я отыскивал способ выяснить DPI устройства для употребления в мобильном дизайне. Я ещё не обнаружил его, зато нашёл приём для выяснения того, пользуется ли читатель сайта сетчаточным дисплеем. Вот как без хлопот достичь этого:
Теперь переменная retina примет значение true, если у читателя сетчаточный дисплей. В дальнейшем можно использовать простойоператор if, чтобы выполнить тот или иной код в зависимости от типа дисплея.
var retina = window.devicePixelRatio > 1 ? true : false;
Теперь переменная retina примет значение true, если у читателя сетчаточный дисплей. В дальнейшем можно использовать простой
if (retina) {
// у читателя дисплей типа retina
}
else {
// у читателя дисплей не типа retina
}
Зачем?
Вот хороший пример: если у меня на сайте иллюстрация (или видео) размером 100×100, то вышеприведённый код посоветует мне скачать иллюстрацию повышенного размера (200×200), чтобы она выглядела чётко на iPhone 4 — а пользователям других устройств не придётся скачивать картинку 200×200 без нужды. Ведь скорость особенно важна для мобильных пользователей.if (retina) {
var html = '<img src="200x200.jpg" width=100 height=100>';
} else {
var html = '<img src="100x100.jpg" width=100 height=100>';
}