私は、ユーザーがdivのコンテンツの詳細を表示するかどうかを切り替えることを可能にするdivを持っています。スムージネスがより多く表示され、より少なく表示される
divには単にアイテムのリストが含まれています。私が何をしたいか
以上を示すと以下を示すの間の遷移をアニメーションです。小さなdivと大きなdivの間の移行。それはジャンプ瞬間
。
実際の例では、divの高さを決めることはできません。トランジションをアニメートするにはどうすればよいでしょうか?
Here is a link to a Codepen which will demonstrate what I am going for.
あなたが最初にあなたのリスト外のあなたのボタンを配置する必要があり
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'));
こんにちは、感謝:
また、あなたはそれを自分で行うにはしたくない場合は折りたたみ可能なパネルを持っているライブラリー
react-bootstrap
で見ることができます。 ulのクライアントの高さから得た高さはいつも一歩遅れていたので、私はそれを働かせることができませんでした。それは崩壊したときの大きな測定値でした。解決のための提案? – alanbuchananアニメーションの最後で高さを取得する必要があります – alexmngn