CSS3で、半透明のリングが波紋のように広がるエフェクトを作ります。
百聞は一見に如かず。
まず最初にデモをご覧ください。
CSSで円を作るにはbordar-radiusを使いますが、これを応用してエフェクトのアニメーション処理を作っていきます。
HTML の記述
<a class="button" href="#"> <span class="ring"></span> </a>
全体をアンカータグ(aタグ)で囲み、波紋のアニメーションをするリングの部分は<span class="ring">でマークアップします。
CSS の設定
.button {
position:relative;
display:block;
width:50px;
height:50px;
margin:20px auto;
border-radius:100px;
background: #1aa;
}
.button .ring {
background:rgba(181, 244, 253, 0.8);
position:absolute;
height:70px;
width:70px;
top:-10px;
left:-10px;
-webkit-border-radius:100px;
-moz-border-radius:100px;
-ms-border-radius:100px;
-o-border-radius:100px;
border-radius:100px;
z-index: -1;
}
.button:hover .ring {
-webkit-animation: wave 1s ease-out;
-webkit-animation-iteration-count: infinite;
-moz-animation: wave 1s ease-out;
-moz-animation-iteration-count: infinite;
-ms-animation: wave 1s ease-out;
-ms-animation-iteration-count: infinite;
-o-animation: wave 1s ease-out;
-o-animation-iteration-count: infinite;
animation: wave 1s ease-out;
animation-iteration-count: infinite;
}
@-webkit-keyframes wave {
0% {-webkit-transform: scale(1, 1); }
50% {opacity: 1;}
100% {-webkit-transform: scale(5, 5); opacity: 0.0;}
}
@-moz-keyframes wave {
0% {-moz-transform: scale(1, 1); }
50% {opacity: 1;}
100% {-moz-transform: scale(5, 5); opacity: 0.0;}
}
@-ms-keyframes wave {
0% {-ms-transform: scale(1, 1); }
50% {opacity: 1;}
100% {-ms-transform: scale(5, 5); opacity: 0.0;}
}
@-o-keyframes wave {
0% {-o-transform: scale(1, 1); }
50% {opacity: 1;}
100% {-o-transform: scale(5, 5); opacity: 0.0;}
}
@keyframes wave {
0% {transform: scale(1, 1); }
50% {opacity: 1;}
100% {transform: scale(5, 5); opacity: 0.0;}
}
キーフレームアニメーションで動かすため、CSSの記述が若干多くなりますが、基本的にはシンプルな構造です。
サイトのワンポイントに取り入れてみてはいかがでしょうか。