API анимации Dart напрямую портирует API веб-анимации , так что все, что вы можете с ним сделать, вы можете сделать в Dart практически точно так же.В WAAPI создание анимации всегда состоит из двух частей: указание ключевых кадров (или эффекта), а затем параметров синхронизации (или просто длительности, если не требуется особый эффект синхронизации).
Среди параметров синхронизации есть параметр, называемый режим заполнения , который влияет на способ визуализации элемента, когда анимация не активна.Чтобы элемент оставался в состоянии, определяемом концом анимации после его завершения, все, что вам нужно сделать, это установить для параметра fill
значение forwards
.
Так же, как с WAAPI в Javascript,в Dart параметры синхронизации анимации устанавливаются во 2-м параметре метода animate, а Map вместо просто длительности.Здесь также можно задать такие параметры, как задержка, замедление и направление анимации.
//Notice that this Dart code is entirely compatible with JS!
el.animate([{"opacity": 0}], {
"duration": 1000,
"fill": "forwards"
});
Вот рабочий пример .
Вы также можете создавать анимации для элемента до вы хотите, чтобы он работал.Метод .animate
возвращает объект Animation , с которого можно хранить анимацию и управлять ею.Вы можете создать его, немедленно вызвать .pause
, а затем воспроизвести его, помимо прочего.Это все еще в полном паритете с WAAPI.
Animation fadeOutEl = el.animate([{"opacity": 0}], {
"duration": 1000,
"fill": "forwards"
})..pause();
// Somewhere else
fadeOutEl.play();
Документация Dart по API-интерфейсу анимации определенно скудна, но, поскольку он фактически идентичен WAAPI (и все-таки основан на нем), все, что вам нужно сделать, - взглянуть на его документы по MDN иоттуда перевод к реализации Дартса довольно тривиален.