Używam animacji aurelia-css do animowania widoków routera. Po przejściu do nowego widoku routera chcę, aby bieżący widok zsunął się z ekranu w lewo, podczas gdy nowy widok przesunie się na ekran z prawej strony.Aurelia router zobacz animację z zamień-zamień = "z"
Oto mój router widok elementu:
<router-view swap-order="with"></router-view>
Oto górny element w każdym z widoków:
<div class="pages au-animate">
A oto css:
@keyframes slideLeftIn {
0% {
transform: translate(100%, 0);
}
100% {
transform: translate(0, 0);
}
}
@keyframes slideLeftOut {
0% {
transform: translate(0, 0);
}
100% {
transform: translate(-100%, 0);
}
}
.pages.au-enter {
transform: translate(100%, 0);
}
.pages.au-enter-active {
animation: slideLeftIn 0.6s;
}
.pages.au-leave-active {
animation: slideLeftOut 0.6s;
}
Używam autoprefix er, więc nie ma potrzeby stosowania prefiksów, takich jak "webkit-".
Z swap-order="with"
, aktualny widok zsuwa się po lewej stronie ekranu, a następnie nowy widok pojawia się bez poślizgu.
To samo dzieje się z swap-order="before"
.
Oto youtube screen video z swap-order="with"
.
Z swap-order="after"
, aktualny widok zsuwa się po lewej stronie ekranu, a następnie nowy widok przesuwa się z prawej strony.
Oto youtube screen video z swap-order="after"
.
Myślę, że swap-order="with"
byłaby taka, która jest potrzebna w tej sytuacji. Ale swap-order="after"
jest najbliższy temu, czego potrzebuję, ponieważ oba widoki faktycznie wykonują slajdy, a nie razem.
Zmieniłem czas trwania animacji .pages.au-enter-active z 0,6 s na 1,6 s, aby zobaczyć, co dzieje się z zamieniem-zamkiem = "z". Pokazuje nowy widok przesuwający się od prawej strony tylko po tym, jak bieżący widok jest całkowicie wyłączony z ekranu. Nowy widok jest częściowo wyświetlany na początku, a następnie wyświetlany zgodnie z oczekiwaniami. Wydaje się więc, że nowy widok jest niewidoczny, dopóki bieżący widok nie zostanie usunięty z DOM. Więc teraz myślę, że problem ma coś wspólnego z moim css, ale nie jestem pewien co to może być. Jakieś sugestie? –
Wypróbowałem prosty projekt i działa on poprawnie, więc jestem prawie pewien, że ma coś wspólnego z innymi css dla .pages. –