次のcssでクラスを.elementToFadeInAndOutに変更することで、不透明度がゼロの要素をフェードインできます。
.elementToFadeInAndOut {
opacity: 1;
transition: opacity 2s linear;
}
この同じクラスのcssを編集して、要素がフェードインした後にフェードアウトさせる方法はありますか?
ご清聴ありがとうございました。
Cssを使用 @ keyframes
.elementToFadeInAndOut {
opacity: 1;
animation: fade 2s linear;
}
@keyframes fade {
0%,100% { opacity: 0 }
50% { opacity: 1 }
}
こちらがデモです
.elementToFadeInAndOut {
width:200px;
height: 200px;
background: red;
-webkit-animation: fadeinout 4s linear forwards;
animation: fadeinout 4s linear forwards;
}
@-webkit-keyframes fadeinout {
0%,100% { opacity: 0; }
50% { opacity: 1; }
}
@keyframes fadeinout {
0%,100% { opacity: 0; }
50% { opacity: 1; }
}
<div class=elementToFadeInAndOut></div>
読み取り: CSSアニメーションの使用
これを行うことでコードをきれいにすることができます:
.elementToFadeInAndOut {
width:200px;
height: 200px;
background: red;
-webkit-animation: fadeinout 4s linear forwards;
animation: fadeinout 4s linear forwards;
opacity: 0;
}
@-webkit-keyframes fadeinout {
50% { opacity: 1; }
}
@keyframes fadeinout {
50% { opacity: 1; }
}
<div class=elementToFadeInAndOut></div>
明示的なユーザーアクション(mouseover/mouseoutなど)なしで単一のfadeIn/Outが必要な場合は、CSS3 animation
を使用できます。 http://codepen.io/anon/pen/bdEpwW =
.elementToFadeInAndOut {
-webkit-animation: fadeinout 4s linear 1 forwards;
animation: fadeinout 4s linear 1 forwards;
}
@-webkit-keyframes fadeinout {
0% { opacity: 0; }
50% { opacity: 1; }
100% { opacity: 0; }
}
@keyframes fadeinout {
0% { opacity: 0; }
50% { opacity: 1; }
100% { opacity: 0; }
}
animation-fill-mode: forwards
を設定すると、アニメーションは最後のキーフレームを保持します
animation-iteration-count: 1
を設定すると、アニメーションは1回だけ実行されます(エフェクトを複数回繰り返す必要がある場合は、この値を変更します)
このリンクが役立つことがわかりました: css-tricks fade-in fade-out css 。
Csstricksの投稿の概要は次のとおりです。
CSSクラス:
.m-fadeOut {
visibility: hidden;
opacity: 0;
transition: visibility 0s linear 300ms, opacity 300ms;
}
.m-fadeIn {
visibility: visible;
opacity: 1;
transition: visibility 0s linear 0s, opacity 300ms;
}
Reactで:
toggle(){
if(true condition){
this.setState({toggleClass: "m-fadeIn"});
}else{
this.setState({toggleClass: "m-fadeOut"});
}
}
render(){
return (<div className={this.state.toggleClass}>Element to be toggled</div>)
}