No entanto, também testei no iPhone X, que é super suave e rápido, então acho que a CPU será o problema. Há alguma chance de melhorar o desempenho em dispositivos mais antigos?
Testarei isso em breve; minha suspeita é que dispositivos mais antigos ainda possam precisar da otimização de desempenho (meio improvisada) que reduz o número de itens no menu para 20 para que funcione sem problemas - Investigarei isso em breve.
@Don - apenas investigando mais para saber o que testar, você está notando isso ao abrir/fechar menus com um toque (dentro e fora do menu), ou deslizando (segurando e gesticulando o deslize)?
O menu parece suave quando o abro pela primeira vez. Acho que porque os elementos do painel não foram carregados. Quando abro pela primeira vez, o carregador giratório aparece no topo. Acho que este é um bom comportamento e talvez seja legal usar sempre o carregador giratório nas aberturas.
As aberturas depois disso são sem animações. O fechamento é aleatório (às vezes suave, às vezes com atraso)
Quando abria e clicava fora, geralmente os botões do menu do painel atrasavam. Mas eles deslizam para fora primeiro Talvez isso aconteça porque todo o painel do menu está em reverse-row e quando fecha, a classe é removida antes que deslize completamente para fora e volte para row?
Editar: Não são os botões do painel do menu (aba) que atrasam, são apenas os ícones antes das notificações. Mas geralmente há um atraso nessa linha.
Quando uso um gesto para fechar o menu, parece suave.
Pelo que pude observar, a “lentidão” aqui se deve à re-renderização dos cabeçalhos, e não às animações em si.
Uma coisa que introduzi e que pode dar a percepção de nova lentidão é a animação de deslizar para fora (essa animação foi inadvertidamente removida quando refatoramos nosso novo cabeçalho).
Dar algum tempo de setTimeout entre a animação e o trabalho de re-renderização que os menus de widget estão fazendo parece tornar as coisas muito mais fluidas, então não é a animação em si que é lenta, então minha suspeita é que seja o trabalho em torno da re-renderização dos cabeçalhos do site ao abrir/fechar.
Na verdade, estou me perguntando se o tratamento do Firefox para a promessa de fim de animação está disparando depois que a animação é realmente pintada (presumi que fosse esse o caso ao codificar a alteração original), o que pode explicar por que parece mais suave do que o Chrome, enquanto o Chrome permite que o trabalho de recálculo comece após a conclusão dos cálculos da animação, mas antes que o fim da animação seja pintado.