Glu*_*ear 13 javascript css fade reactjs
我有一个Basket组件需要BasketContents在单击时切换组件.这有效:
constructor() {
super();
this.state = {
open: false
}
this.handleDropDown = this.handleDropDown.bind(this);
}
handleDropDown() {
this.setState({ open: !this.state.open })
}
render() {
return(
<div className="basket">
<button className="basketBtn" onClick={this.handleDropDown}>
Open
</button>
{
this.state.open
?
<BasketContents />
: null
}
</div>
)
}
Run Code Online (Sandbox Code Playgroud)
它使用条件来显示BasketContents组件与否.我现在希望它淡入.我尝试添加一个ComponentDidMount钩子BasketContents来转换不透明度,但这不起作用.有一个简单的方法吗?
Gil*_*add 14
使用css类切换+不透明度转换的示例:https:
//jsfiddle.net/e7zwhcbt/2/
这是有趣的CSS:
.basket {
transition: opacity 0.5s;
opacity: 1;
}
.basket.hide {
opacity: 0;
pointer-events:none;
}
Run Code Online (Sandbox Code Playgroud)
和渲染功能:
render() {
const classes = this.state.open ? 'basket' : 'basket hide'
return(
<div className="basket">
<button className="basketBtn" onClick={this.handleDropDown}>
{this.state.open ? 'Close' : 'Open'}
</button>
<BasketContents className={classes}/>
</div>
)
}
Run Code Online (Sandbox Code Playgroud)
我会像这样使用反应运动:
<Motion style={{currentOpacity: spring(this.state.open ? 1 : 0, { stiffness: 140, damping: 20 })}}>
{({currentOpacity}) =>
<div style={{opacity: currentOpacity}}>
<BasketContents />
</div>
}
</Motion>
Run Code Online (Sandbox Code Playgroud)
我还没有测试过,但它应该可以工作。
| 归档时间: |
|
| 查看次数: |
18585 次 |
| 最近记录: |