Если вы используете блочные элементы с background-image
s, вы можете указать в CSS источник изображения, который позволяет создавать медиазапрос, который загружает только правильное изображение. Большинство мобильных браузеров поддерживают медиазапросы, поэтому рекомендуется начать с высокого разрешения по умолчанию, а затем использовать медиазапрос, чтобы изменить источник background-image
на lo-res:
/*set source for hi-res images here (default)*/
#image-1 {
position : relative;
width : ...px;
height : ...px;
display : inline-block;
background-image : url(/images/this-image-hi.jpg);
}
@media all and (max-width:480px) {
/*set source for lo-res images here*/
#image-1 {
background-image : url(/images/this-image-lo.jpg);
}
}
Тогда ваш тег изображения будет изменен на что-то вроде:
<div id="image-1"></div>
Вы также можете установить все атрибуты источника изображений на пустой пиксель, а затем с помощью функции JavaScript изменить их источник на document.ready
:
$(function () {
if (HI-RES) {
$('img[data-src-hi]').each(function (index, element) {
this.src = $(this).attr('data-src-hi');
});
} else {
//output lo-res images
$('img[data-src-lo]').each(function (index, element) {
this.src = $(this).attr('data-src-lo');
});
}
});
Это требует, чтобы ваши теги изображений выглядели так:
<img src="/images/blank-pixel.png" width="xx" height="xx" data-src-hi="/images/this-image-hi.jpg" data-src-lo="/images/this-image-lo.jpg" />