1
我有一個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'));
您好,感謝這個答案。我無法實現它,因爲我從ul的客戶端高度獲得的高度總是落後一步 - 這是倒塌時的大型測量,反之亦然。任何解決的建議? – alanbuchanan
你應該在動畫結束時獲得高度 – alexmngn