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の記述が若干多くなりますが、基本的にはシンプルな構造です。
サイトのワンポイントに取り入れてみてはいかがでしょうか。