サンプルはこちら
See the Pen tEeJK by Kazuyoshi Goto (@KazuyoshiGoto) on CodePen.
transitionのアニメーション表現を改めておさらい。
フェードイン表現にはdisplayではなくopacityを使う必要があります。
CSS(Sass)
.box1 { p { display: block; @include transition(1s); } &:hover { p { display: none; } } } .box2 { p { @include opacity(1); @include transition(1s); } &:hover { p { @include opacity(0); } } }
box1はマウスオーバー時にdisplay
を使って<p>タグの表示を切り替えています。
対してbox2はopacity
を使って<p>タグの表示を切り替えています。
transitionによるアニメーション効果は、値が数値のもののみ有効です。
displayはblock/noneといった設定名のためアニメーションが適用されず、opacityは1~0までの小数点数値が存在するためアニメーションが適用されます。フェードアウト表現をしたい時はここを注意しましょう。
※注意
opacityは0にしても色が透明になっているだけで、block:none と異なりオブジェクトとして存在しています。その辺りの制御はJavaScriptなどで工夫が必要になります。