私は最初は透明なボタンを持っています。それが押されると、 "b"または "w"の小道具を渡すことで色のついた円に成長します。まだ押されていなければ、それは透明のままでなければならない。さらに、黒または白のボタンは予め決定することができない。また、その小道具がnullになったときに透明に戻すようにしたいと思っています。成長部分は私のためにうまくいっていますが、縮小はありません。要素からクラスを削除するときに反応して、アニメーションを追加しますか?
ボタンは、小道具の値をチェックし、クラスを適用するかを決定:適切なアニメーションを行い、黒と白のクラスを追加する際にCSSで
render() {
var areaClass = classnames({
button: true,
black: this.props.gameState === "b",
white: this.props.gameState === "w",
})
return (
<button className={areaClass} onClick={() => this.props.onClick()}></button>
);
}
は、私が成長のキーフレームを使用しています。ボタンクラスにシュリンクキーフレームを入れようとしましたが、黒または白のクラスを削除するとアニメーションが適用されません。あたかもアニメーションがないかのように点滅しているだけです。
button {
z-index: 3;
position: relative;
width: 30px;
height: 30px;
margin: 2px;
border-radius: 50%;
background: transparent;
border-color: transparent;
animation-name: shrink;
animation-duration: 0.3s;
}
.button:focus {
outline: none;
}
.black, .white {
animation-name: grow;
animation-duration: 0.3s;
}
.black {
background: black;
}
.white {
background: white;
border: 2px solid black;
}
@keyframes grow {
0% {transform: scale(0, 0);}
100% {transform: scale(1, 1);}
}
@keyframes shrink {
0% {transform: scale(1, 1);}
100% {transform: scale(0, 0);}
}
申し訳ありませんが、私はあまりにも早くこれを受け入れました。私は質問をより明確に編集しましたが、最初にボタンにgrowクラスを持たせたくありません。また、黒または白のボタンは私によっては決まらないので、黒と白のクラスを常にアクティブに保つことはできません。これらの調整後もまだ可能ですか? – Yifan