Идеи про анимацию #155

Closed
chestozo opened this Issue Sep 6, 2013 · 8 comments

3 participants

@chestozo
yandex-ui member

А что если мы будем делать так:

  • когда запускается ns.update мы проходим по деревью вьюх и помечаем те, которые будут скрыты, классом ns-view-update-old
  • когда приходят модели и у нас вставляются новые вьюхи в DOM они помечены классом ns-view-update-new

Получается, что мы можем при помощи css задать анимацию перехода от ns-view-update-old к ns-view-update-new.

Что думаете?

@doochik
yandex-ui member

вот я только переписал свой код с этого варианта
задание анимации в css меня очень сильно ограничивало + былы проблемы с производительностью из-за глобальных классов (которые выше вешаются и решают куда и что анимировать)

@chestozo
yandex-ui member

А на какой вариант ты переписал?

  • былы проблемы с производительностью из-за глобальных классов

У меня идея была не про глобальные классы, а про классы, которые вешаются на view.
Ну т.е. класс вешается только на вью, которое сменяется, а не на родителя...
Но может быть нужно и на родителя.

@doochik
yandex-ui member

Тогда этих двух классов мало, у меня характер анимации зависит от контекста
Переписал на динамическую анимацю. Переопределил showNode/hideNode, высчитываю тип анимации и через style расставляю транзишены

@chestozo
yandex-ui member

Ну т.е. это не общий механизм в noscript сейчас...
Ясно.

@chestozo
yandex-ui member

Поговорили голосом:
у @doochik есть вариант с переопределённым box-ом, в котором выполняются transition-ы.
Ждём его отмашки )

@doochik
yandex-ui member

Я пока не готов, это уже 3-й вариант реализации. Хочется верить, что последний, но все же :)

@chestozo
yandex-ui member

Ага, я просто для истории записал ) чтобы потом знать, к кому топать )

@chestozo
yandex-ui member

Понял, что анимация внутри бокса не решает всех проблем, а именно:
что делать, когда анамировать надо вложенное view?

{
  'content@': {
    'photo:' {
      'image': true, // хочу анимировать только картинку, но она внутри photo
      'comments': true
    }
  }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment