Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Разные размеры изображения под разные разрешения экрана


Recommended Posts

Сейчас верстаю для своего магазина (ocstore1551) адаптивный шаблон и озадачился вот чем.

 

Специфика товара требует изображения больших размеров на страницах категорий и товаров на дескопах.

В мобильной версии сайта все наоборот. Хочется отдавать пользователю изображения меньшего размера для более быстрой загрузки страниц магазина.

 

Я вижу такое  решение:

При первом заходе посетителя сохраняем разрешение экрана в кукисах. В контроллер  добавить переменную с разрешением экрана взятую с кукисов и исходя из нее отправлять разные значения в model/tool/image

 

У меня не настолько много опыта, чтобы быть уверенным в работоспособности моего решения. Может кто нибудь делал подобное и подтвердит правильность моей мысли, или подскажет другой вариант решения данной задачи?

 

 

Надіслати
Поділитися на інших сайтах


Небезопасно передавать в кукисах на сервер такие данные. В голову приходит аттрибут у изображений, data-mobile-src="изображение для мобильной версии". Потом посредством javascript можно поменять примерно так для мобильников:

if (screen.width <= 700)
{
    var $images = $('img[data-mobile^="http"]');
    $.each($images, function(index, obj){
        var $mobile_src = $(obj).attr('data-mobile-src') || $(obj).data('mobile-src');
        $(obj).attr({'src':$mobile_src});
    });
}  
Змінено користувачем halfhope
Надіслати
Поділитися на інших сайтах

 

Небезопасно передавать в кукисах на сервер такие данные. В голову приходит ...

А в чем заключается опасность? Ведь в кукисах сохраняются к примеру выбор языка, или валюты. Почему тогда опасно сохранить значение ширины экрана?

 

Ваш метод интересен, попробовал его с небольшими правками. Я правильно понимаю, что любой браузер исполнит скрипт раньше, чем пойдет загрузка изображений с значение атрибута src="" который указаны до замены скриптом?

Надіслати
Поділитися на інших сайтах


как вариант - picturefill

Спасибо за предложенный вариант.

Но мне хотелось именно на стороне сервера адаптировать изображения.

 

Нашел такое решение - http://adaptive-images.com/

Тут как раз в кукисах сохраняется размер экрана и с помощью mod_rewrite  в htaccess подменяется изображение. Для моих нужд логику нужно переделать, но в целом эта идея мне почему то больше нравится чем решения на стороне клиента. Хотя может я не прав. В общем нужно протестировать и тогда принять окончательное решение.

Надіслати
Поділитися на інших сайтах


Спасибо за предложенный вариант.

Но мне хотелось именно на стороне сервера адаптировать изображения.

 

Нашел такое решение - http://adaptive-images.com/

Тут как раз в кукисах сохраняется размер экрана и с помощью mod_rewrite  в htaccess подменяется изображение. Для моих нужд логику нужно переделать, но в целом эта идея мне почему то больше нравится чем решения на стороне клиента. Хотя может я не прав. В общем нужно протестировать и тогда принять окончательное решение.

 

Предложенный @AlexDW вариант - безкостыльное решение. До этого не знал, что есть такая либа. 

Змінено користувачем halfhope
Надіслати
Поділитися на інших сайтах

в html5 есть чудный атрибут

<img srcset />

 

<img src="normal.png" srcset="mini.png 320w, large.png 1920w" />

https://www.w3.org/html/wg/drafts/html/master/semantics.html#viewport-based-selection

 

или..

<picture>  <source media="(min-width: 45em)" srcset="large.jpg">  <source media="(min-width: 32em)" srcset="med.jpg">  <img src="small.jpg" alt="The president giving an award."></picture>

Как там с поддержкой браузеров - не знаю

Надіслати
Поділитися на інших сайтах

в варианте AlexDW необходимо чтоб статика отдавалась через apache

 

или же немного переделывать  model tool/image - чтобы в src подставлялось, что-то такое adaptive-images.php?image=название_изображения

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.