【发布时间】:2017-05-18 14:37:40
【问题描述】:
我试图隐藏一个带有动画的 div。我最初的通过如下所示:
.row {
height: 50px;
transition: height 200ms ease-in-out;
&.hidden {
height: 0;
}
}
我的 DOM 结构如下(带有反应):
<div className={styles.container}>
<div className={styles.row} />
<div className={classnames(styles.row, { [styles.hidden]: !this.state.active })}
</div>
虽然这确实有效,但速度很慢。我听说转换在 CSS 中转换很有效,所以我决定尝试以下方法。
.row {
height: 50px;
transform-origin: top;
transition: transform 200ms ease-in-out;
&.hidden {
transform: scaleY(0);
}
}
但是,在容器内,第二行仍然显示为一个 50px 的框,但检查器说它的高度为 0。
如何正确应用此变换来隐藏第二个框?
【问题讨论】:
标签: javascript css reactjs css-animations