Вход на сайт
Регистрация
Восстановить пароль
Настройки
Уведомления
Создать лот
Предложить обмен
Предложить деньги
Предложение обмена
Редактировать бейдж
Редактировать бейдж
Контакты
Правообладателям
Предложить обмен

Кстати, у тебя диск в каком состоянии?

Связи с данным событием, команда Firaxis выпустила новый трейлер, рассказывающий о дополнении и его плюшках.

Раздобыть технологии, которые помогут защитникам Земли справиться с захватившей её инопланетной угрозой.

В хорошем состоянии, диску неделя

Кстати, у тебя диск в каком состоянии?

Связи с данным событием, команда Firaxis выпустила новый трейлер, рассказывающий о дополнении и его плюшках.

Раздобыть технологии, которые помогут защитникам Земли справиться с захватившей её инопланетной угрозой.

В хорошем состоянии, диску неделя

Кстати, у тебя диск в каком состоянии?

Связи с данным событием, команда Firaxis выпустила новый трейлер, рассказывающий о дополнении и его плюшках.

Раздобыть технологии, которые помогут защитникам Земли справиться с захватившей её инопланетной угрозой.

В хорошем состоянии, диску неделя

Кстати, у тебя диск в каком состоянии?

Связи с данным событием, команда Firaxis выпустила новый трейлер, рассказывающий о дополнении и его плюшках.

Раздобыть технологии, которые помогут защитникам Земли справиться с захватившей её инопланетной угрозой.

В хорошем состоянии, диску неделя

Drive Club



Выбор игры


Крестик внутри игры работает - можно удалять.

Берем блок .preview (блок самой игры) и обарачиваем его в .fade - сюда завязаны все анимации. К блоку .preview так же примиксовываем элемент .fade__content. В итоге получается такая структура:

.fade
    .fade__content.preview
    ...

Теперь работаем только с блоком .fade. Блок .preview боьше не трогаем. Более того, внутри может быть не только превью, а любой другой. Например тренды.

Модификаторы .fade_animation_in и .fade_animation_out - это наши классы для скрытия и показа, соответствено. Но просто добавлять и убирать эти классы - этого недостаточно.


Показ

  1. Создаем элемент .preview в памяти.
  2. Оборачиваем его в .fade, примиксовываем .fade__content
  3. Добавляем модификатор .fade_animation_in
  4. Выводим в DOM в нужное место (В стилях стоит opacity: 0 и height: 0)
  5. Замеряем высоту содержимого: outerHeight на элементе .fade__content (несмотря на то, что у родителя высота нулевая, у потомка высота все-равно нормальная)
  6. Проставляем эту высоту блоку .fade обычными инлайновыми стилями, проставляем так же opacity: 1 (тут верстка подхватит изменения и произойдет анимация).
  7. Ставим таймаут на 500ms (время анимации 450ms плюс полтиник запасу, на случай рассинхрона). По таймауту убираем .fade_animation_in. Инлайновые стили height и opacity наоборот не надо удалять. Важно их оставить для удаления.

Скрытие

  1. Ловим клик по крестику, добавляем .fade_animation_out
  2. Перед тем как запускать анимацию удаления надо бы убедиться, что проставлены инлайново height: 123px и opacity: 1 (а они должны остаться из анимации показа). Если по какой-то причине это не так, то посчитать и проставить эту высоту.
  3. Добавляем инлайново height: 0 и opacity: 0 (это можно было бы сделать версткой, но для сохранения общности с показом давай тоже делать JS`ом). (Тут верстка подхватит изменения в значениях высоты и прозрачности и заанимирует их).
  4. Ставим таймаут на 500ms (так же 450ms анимации и небольшой запас) и через 500ms удаляем из DOM`а.




Тренды

Анимация у трендов точно такая же как и игры чуть выше. Те же классы, тот же функционал, те же проблемы. Я не знаю будет ли там удаление, но на всякий случай проработал в этой демке. Тут так же важно, чтобы перед удалением стояли актуальные инлайновые height и opacity на элементе. Стояли заранее. Например если страница при открытии уже может содержать тренды, то надо по ним пройтись и обсчитать их высоты.





Уведомления

(тут иконки поламались из-за того, что разметка в JS`е, а не в HTML и она не попала в галп)


Аналогично всему, что выше. Едиственное че тут, пришлось усложнить верстку самой нотификации на одну обертку из-за осттупа между. Раньше просто шли блоки .notification друг за другом, а сейчас стали блоком .informer который оборачивает старый .notification