Wenn ein Element in Animieren Reagieren wir Schnipsel wie verwenden:Was macht transitionEnterTimeout/transitionLeaveTimeout in React?
<div>
<button onClick={this.handleAdd}>Add Item</button>
<ReactCSSTransitionGroup transitionName="example" transitionEnterTimeout={500} transitionLeaveTimeout={300}>
{items}
</ReactCSSTransitionGroup>
</div>
Zusammen mit den beglückwünschend CSS-Animationen.
Ich habe die Dokumente lesen (hier: https://facebook.github.io/react/docs/animation.html)but Ich bin nicht 100% sicher, was die beiden Timeout-Attribute tatsächlich kann ich ahne würde und sagen, dass sie ein Rückfall sind, wenn die Animation nicht abgeschlossen
?sollten die Werte übereinstimmen, die CSS-in/out Dauerwerte, oder sollten sie größer als die Animation Werte sein?
.example-enter {
opacity: 0.01;
}
.example-enter.example-enter-active {
opacity: 1;
transition: opacity 500ms ease-in;
}
.example-leave {
opacity: 1;
}
.example-leave.example-leave-active {
opacity: 0.01;
transition: opacity 300ms ease-in;
}
Genau wie ein Follow-up, derzeit, die '* Timeout'-Requisiten tun eigentlich nichts, wenn der Klasse, die angewendet wird, eine Transition oder Animation zugeordnet ist. Sie können den Wert auf den gewünschten Wert setzen, und "ReactCSSTransitionGroup" ignoriert ihn einfach zugunsten von "animationEnd" - oder "transitionEnd" -Ereignissen, die der Browser sendet. Das einzige Mal, dass diese Werte etwas tun, ist, wenn die Klasse keine Übergänge oder Animationen enthält. –
@noob-in-need Ich glaube nicht, dass das völlig stimmt - (zumindest nicht in der aktuellen Version). Wenn ich sehr hohe Timeouts, aber niedrige Animationszeiten einstelle, wird die Animation abgeschlossen, aber das Element wird nicht entfernt, bis die TransitionEnd-Zeit abgelaufen ist – Chris