CSSを利用して、透明度が変化するアニメーションを実装します。
フェードイン、フェードアウトの効果が得られます。
CSSで透明度が変化するアニメーションを実装するには、transition プロパティを利用します。transitionプロパティはCSS3のため、ベンダープレフィックスの記述が必要になります。Chrom, Safari用の"-webkit-transition", FireFox用の"-moz-transition", Internet Explorer用の"-ms-transition", Opera用の"-o-transition" をそれぞれ記述する必要があります。
最新のWebブラウザ(Internet Explorer 11, Microsoft Edge)であれば、ベンダープレフィックスの記述の無い"transition"プロパティで動作します。
[変化時間]にはアニメーションで変化する時間を指定します。
下記の例は3秒かけてアニメーションします。
transition: all 3s;
下記のHTMLファイルを作成します。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<link rel="stylesheet" href="fade.css" />
<meta charset="utf-8" />
<script type="text/javascript">
function FadeOutLinkClick() {
var frame = document.getElementById("FadeOutDivFrame");
frame.className = "FadeOutFrame fadeout";
}
function FadeInLinkClick() {
var frame = document.getElementById("FadeInDivFrame");
frame.className = "FadeInFrame fadein";
}
</script>
</head>
<body>
<div id="FadeOutDivFrame" class="FadeOutFrame">枠です。</div>
<a id="fadeout" href="javascript:void(0);" onclick="FadeOutLinkClick();">フェードアウト</a>
<hr/>
<div id="FadeInDivFrame" class="FadeInFrame">枠です。</div>
<a id="fadeout" href="javascript:void(0);" onclick="FadeInLinkClick();">フェードイン</a>
</body>
</html>
.FadeOutFrame {
width: 320px;
height: 180px;
background-color: #abffe8;
border: 1px solid #0067aa;
opacity: 1;
}
.FadeOutFrame.fadeout{
-webkit-transition: all 1.5s;
-moz-transition: all 1.5s;
-ms-transition: all 1.5s;
-o-transition: all 1.5s;
transition: all 1.5s;
opacity: 0;
}
.FadeInFrame {
width: 320px;
height: 180px;
background-color: #ffd3d3;
border: 1px solid #b50042;
opacity: 0;
}
.FadeInFrame.fadein{
-webkit-transition: all 1.5s;
-moz-transition: all 1.5s;
-ms-transition: all 1.5s;
-o-transition: all 1.5s;
transition: all 1.5s;
opacity: 1;
}
[フェードアウト]のリンクがクリックされると、"FadeOutDivFrame"枠のクラスを、"FadeOutFrame"から"FadeOutFrame fadeout"に変更します。"FadeOutFrame fadeout"はtransitionプロパティと、opacity: 0;が設定されているため、transitionプロパティに設定された秒数でopacity: 0;(透明)にアニメーションします。
[フェードイン]のリンクがクリックされた場合も同様に、"FadeInDivFrame"枠のクラスを、"FadeInFrame"から"FadeInFrame fadein"に変更します。transitionプロパティに設定された秒数で、opacity: 1;(不透明)にアニメーションします。
上記のHTMLファイルをWebブラウザで表示します。下図の画面が表示されます。
[フェードアウト]リンクをクリックすると、表示されている枠の透明度が上がり、フェードアウトします。
枠が非表示になります。
下部の[フェードイン]リンクをクリックします。枠の透明度が下がり、枠がフェードインします。
枠が表示されます。