.unit

Это вторая версия коробки с игрой. Первая - это есть глобальный .item. .item - это упрощенная, минималистичная версия, которая используется на мобилках и на узких ширинах десктов (здесь же планшеты). Главное отличие в том, что .unit сохраняет высоту независимо от пропорций картинки. Это делает его сложным и тяжелым по коду.

Для позицонирования .unit`ов используется блок .tiles (для .item`ов блок .bricklayer. Эти две структуры взаимоисключающие.

На мобилках все достаточно просто, там всегда используется .item с .bricklayer. На десктопах нужно определять ширину. Если она строго меньше 1340, то используем .item с .bricklayer (см. соответствующие доки). Если ширина больше чем 1340 (включительно), то используем рассматриваемые .unit`ы с .tiles.

Ретинизация проста. Просто добавляем srcset с путем до удвоенной картики и дескриптором 2x:
srcset="path/to/2x/image.jpg 2x"
Сюда же в srcset путь к обычной 1х картинке добавлять не надо, он берется из обычного атрибута src.
По желанию можно сделать аналогию и для 3x, но это какой-то слишком уж гипотетический кейс, ибо таких десктопов (.unit только на десктопах) не бывает. А место на хостинге пожрет.

Размеры картинки режутся от высоты. Дефолт - это высота 160px, для ретины, соответствено 320px. Ширина автоматически.




Самая простая плитка:

Metal Gear Solid V
149 предложений

В какой-то момент к ней добавили название игры:

Metal Gear Solid V
Metal Gear Solid V: Ground Zeroes
149 предложений




Больше инфы в подвале плитки:

Используем там блок .param обязательно с модификатором .param_outside

Metal Gear Solid V
Metal Gear Solid V: Ground Zeroes
Обмен




Плитка с оверлеем и действиями

Тут страшные замес с тем, куда запихать этот оверлей. Он должен быть поверх тела, но под подвалом. При этом подвал должен остаться прозрачным и поддерживать ссылки внутри. По-этому сначала выводим .unit__body, потом .unit__overlay и после .unit__foot. При этом весь оверлей должен быть кликабелен, вести на сам лот. По этому он часть общей ссылки.

Кнопки внутри оверлея и ссылки внутри подвала (появятся позже) отлавливать JS`ом. Ссылку в ссылку не запихать.

Сюда же надо добавлять модификатор .unit_has-overlay, чтобы сбросить дефолтный эффект наведения. Он тут не нужен ибо есть оверлей.

Еще здесь надо сделать проверку на наличие наведения в принципе. Опять же, смотри на .unit_has-overlay, ловим клик по нему. Надо проверить, показан ли в момент клика .unit__operations (например свойство display != none). Если показан, то все ок, сработало наведение и пользователь увидел возможные действия, но предпочел кликнуть в пустую область, чтобы перейти к игре/лоту. Если нет, то это тач устройтсво или он пришел сюда табуляциями. Надо отменить клик и показать ему оверлей по клику. Для того, чтобы показать оверлей добавляем класс .unit_drop.

Metal Gear Solid V
Рекламировать Редактировать Удалить
Metal Gear Solid V: Ground Zeroes
Обмен




Восстановить

Metal Gear Solid V
Ваше объявление удалено.
Восстановить
Metal Gear Solid V: Ground Zeroes
Осталось 0 дней




Четыре кнопки в оверлее

Немного экстремальный кейс. На четыре кнопки тут места не хватает. В случае, если кнопок 4 (или больше), то добавляем модификатор .unit_has-four-actions. Он немного уменьшит расстояние между кнопками и они влезут.

Metal Gear Solid V
Рекламировать Редактировать Удалить Добавить бейдж
Metal Gear Solid V: Ground Zeroes
Обмен




Лоты

Приходит предложение с одной игрой. Тут такие же операции как выше, кнопок меньше. В подвале обещанная ссылка .unit__extra-link, которую так же нельзя делать тегом <a>. Делаем <span>, а клик ловим JS`ом.

Metal Gear Solid V
Ответить Не интересно
Metal Gear Solid V: Ground Zeroes
Hideo Kojima


Приходит предложение с деньгами. Тут вместо .unit__stage и всех его потомков с обложкой выводится .unit__buying

1700 руб.
Ответить Не интересно
Metal Gear Solid V: Ground Zeroes
Hironobu Sakaguchi


Игра с доплатой. Тут новый элемент .unit__money. Кстати, из-за того, как он позиционируется и понадобилась обертка .unit__preview.

Metal Gear Solid V
+200 руб.
Ответить Не интересно
Metal Gear Solid V: Ground Zeroes
Akira Yamaoka



Несколько игр.

Сюду нажен мини-слайдер. Во-первых точки навигации .unit__navigation. Во-вторых пачку кантинок .unit__boxart (раньше была только одна, сейчас много). В случае со слайдером этим картинкам нужно проставляет модификатор .unit__boxart_set (ну типа это не просто картинка, а часть множества картинок). Дальше по клику на точки дергаем классы .unit__switch_current и .unit__boxart_current.

Игра 1
Игра 2
Игра 3
Игра 4
Metal Gear Solid V God of War III Final Fantasy X Patapon 3
+200 руб.
Ответить Не интересно
Metal Gear Solid V: Ground Zeroes
Akira Yamaoka




Бейдж

Metal Gear Solid V
-30%
-30%
-30%
-30%
100500




Смотрим разные форматы обложек

Patapon 3
Обмен
Final Fantasy X
1700
God of War III
1700
Metal Gear Solid V
1700
Bioshock Infinite
1700
Battlefield 4
1700
Super Mario Galaxy 2
1700
Super Mario Bros U
1700
Mario Party DS
1700
The Legend of Zelda: Ocarina of time 3D
1700