【发布时间】:2017-08-24 18:04:17
【问题描述】:
我试图在点击事件发生时显示带有过渡的背景颜色,并且在 1 或 2 秒后没有进一步交互的情况下淡出背景颜色。
基本上我想做 active 属性在 css 中所做的事情,但对于点击事件。
我当前的方法需要第二次触发点击事件以淡出背景颜色。如何一键完成此操作
我的方法
handleClick(id) {
this.setState({
active: !this.state.active
})
}
<div className={this.state.active ? "txt_vote_bar_div txt_vote_bar_div_active" : "txt_vote_bar_div txt_vote_bar_div_notactive"}
onClick={this.handleClick()}>
</div>
我的 CSS
.txt_vote_bar_div {
width: 100%;
height: 50px;
min-height: 50px;
position: relative;
border: 1px solid #C6C6C6;
border-radius: 5px;
margin-bottom: 10px;
cursor: pointer;
}
.txt_vote_bar_div_active {
background-color: #001f3f;
transition: 1s ease-in-out;
}
.txt_vote_bar_div_notactive {
background-color: #FFFFFF;
transition: 1s ease-in-out;
}
【问题讨论】:
-
您正在调用处理程序,而不是传递 ref。这个
onClick={this.handleClick()}应该改成这个onClick={this.handleClick} -
@CraZyDroiD 请找到我的答案,如果您有任何问题,请告诉我。
标签: javascript css reactjs css-transitions