Ich habe eine div, die es einem Benutzer ermöglicht, zwischen mehr div Inhalte anzeigen und weniger davon anzuzeigen.Glätte zwischen mehr und weniger anzeigen
Das div enthält einfach eine Liste von Elementen.
Was ich tun möchte, ist, den Übergang zu animieren zwischen mehr zeigt und weniger zeigt; der Übergang zwischen kleinen div und groß.
Im Moment ist es springt.
In einem realen Beispiel kann ich nie die Höhe des div festlegen oder kennen. Was ist eine gute Möglichkeit, den Übergang zu animieren?
Here is a link to a Codepen which will demonstrate what I am going for.
Reagieren
var Box = React.createClass({
getInitialState: function() {
return {
showingMore: false
};
},
handleShowToggle: function() {
this.setState({
showingMore: !this.state.showingMore
});
},
render: function(){
var {showingMore} = this.state;
var showText = showingMore ? 'Show Less' : 'Show More';
var style = {display: showingMore ? 'block' : 'none'}
return (
<div>
<ul>
<li style={style}>Sometimes show me</li>
<li style={style}>Sometimes show me</li>
<li style={style}>Sometimes show me</li>
<li>Always show me</li>
<li style={style}>Sometimes show me</li>
<li onClick={this.handleShowToggle}>{showText}</li>
</ul>
</div>
)
}
})
ReactDOM.render(<Box />, document.getElementById('react'));
Hallo, vielen Dank für diese Antwort. Ich konnte es nicht zum Laufen bringen, weil die Höhe, die ich von der Kundenhoheit bekam, immer einen Schritt zurück war - es war die große Messung, wenn sie zusammenbrach und umgekehrt. Irgendwelche Vorschläge zum Lösen? – alanbuchanan
Sie sollten die Höhe am Ende der Animation erhalten – alexmngn