Reaguj, płynnie przechodząc między różnymi stanami w komponencie
Mam taki prosty element:
<pre class="lang-js prettyprint-override">
var component = React.createClass({
render: function(){
if (this.props.isCollapsed){
return this.renderCollapsed();
}
return this.renderActive()
},
renderActive: function(){
return ( <div>
...
);
},
renderCollapsed: function(){
return ( <div>
...
);
},
});
Zasadniczo, gdy właściwość ulegnie zmianie, komponent pokaże stan aktywny lub zwinie się.
Zastanawiam się, kiedy następuje zmiana właściwości, np. Aktywny- & > zwijanie lub odwrotnie, chcę, aby stary widok „zmniejszania” lub „rozszerzania” płynnie wyświetlał nowy widok. Na przykład, jeśli jest aktywny - & > zwiń, chcę, aby aktywny interfejs użytkownika zmniejszył się, aby zwinąć rozmiar interfejsu użytkownika i wyświetlić go płynnie.
Nie wiem, jak osiągnąć taki efekt. Podziel się kilkoma pomysłami. Podziękować!
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
7 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
warunkowe wyświetlanie dwóch różnych stanów końcowych
komponent, możesz
przełącz klasę
za to samo
składnik. Możesz mieć aktywne i zwinięte klasy w ten sposób:
Na przykład:
Sprawdzić
ten zasób
https://css-tricks.com/almanac ... tion/
dla przykładów
Anonimowy użytkownik
Potwierdzenie od:
<div class="snippet-code">
<div class="snippet" data-babel="true" data-console="true" data-hide="false" data-lang="js">
<pre class="snippet-code-js lang-js prettyprint-override">
<pre class="snippet-code-css lang-css prettyprint-override">
<pre class="snippet-code-html lang-html prettyprint-override">
Widok można płynnie „zmniejszać” lub „rozszerzać”
przejście
https://developer.mozilla.org/ ... ition
CSS, który jest uruchamiany przez zmianę właściwości CSS.
Aby manipulować właściwościami CSS za pomocą Reacta, możemy odzwierciedlić zmiany stanu w wartościach właściwości lub w .
W tym przykładzie klasa wpływa na wartość i jest kontrolowana przez . Klasa przełącza React w odpowiedzi na zmiany stanu i wyzwala przejście CSS.
Aby uzyskać płynniejsze przejścia, zobacz B.
Ten artykuł
https://medium.com/outsystems- ... bkn8a
.
Anonimowy użytkownik
Potwierdzenie od:
react-transition-group
https://github.com/reactjs/react-transition-group/
co jest całkiem proste. Owiń komponent tagiem i ustaw limity czasu wejścia i wyjścia, na przykład:
Z
Dokumentacja stabilna v1
https://github.com/reactjs/rea ... table
:
„W tym komponencie, kiedy nowy element jest dodawany do CSSTransitionGroup, to
otrzyma przykładową klasę CSS i przykładową enter-aktywną klasę CSS
klasa zostanie dodana w następnym tiku. "
Stylizuj swoje klasy CSS, aby uzyskać odpowiednią animację.
Jest też całkiem dobre wyjaśnienie
React docs
https://facebook.github.io/rea ... .html, Sprawdź to.
Istnieją również komponenty animacji innych firm.
Anonimowy użytkownik
Potwierdzenie od:
Oto działający przykład
CodePen
http://codepen.io/pwroff/pen/JEXKJe
A oto przykładowy kod:
Oczywiście, aby to podejście zadziałało, jedyną opcją jest przekazanie stanu, a nie właściwości komponentów, które zawsze możesz ustawić w metodzie componentWillReceiveProps, jeśli masz z nimi do czynienia.
Zaktualizowano
>
Link Codepen
http://codepen.io/pwroff/pen/xggXVB
zaktualizowany o jaśniejszy przykład, który pokazuje korzyści płynące z tego podejścia. Przejście zostało zmienione na animację JavaScript bez polegania na zdarzeniu przejścia.
Anonimowy użytkownik
Potwierdzenie od:
css powinien wyglądać mniej więcej tak:
Anonimowy użytkownik
Potwierdzenie od:
<pre class="lang-js prettyprint-override">
aw swoim CSS:
Anonimowy użytkownik
Potwierdzenie od:
Mam nadzieję że to pomoże!