ヘッダーに簡単なCSS3のアニメーションを仕掛けてみた。
2013年03月13日
このブログのヘッダーにいるドロイド君に注目。
ページを表示して数秒後、一回だけアニメーションが実行されます。リロードして確かめてみてください。
これ、JavaScriptやjQueryは一切使ってません。いやぁ、こんな簡単にできるとは思わなかった。
CSS3のアニメーション
ドロイド君の頭が開いてヘーベル君がニョキッと出てくるアニメーションは全てCSS3で書かれています。
CSS3なので、Internet Explorerや古いブラウザだと一部対応していませんが、もちろんスマートフォンには対応しています。
いやしかし、スタイルシートだけでこれだけなめらかなアニメーションができるのはちょっと感動しました。
ソース
webデザイン系のブログではないので、ソースを載せたところであまり意味ないですが、一応載せておきます。
ベンダープレフィックスがたくさんあって長くなってしまうので、webkitのみ載せています。
cssのソース
#header-logo { width: 200px; height: 128px; } #header-logo img { position: absolute; clip: rect(0px 500px 128px 0px); } #header-logo-body { z-index: 4; } #header-logo-head { z-index: 3; -webkit-transform: rotate(24.5deg); -webkit-transform-origin: 40px 106px; -webkit-animation: head-motion 0.5s ease 2s 1 normal forwards; } #header-logo-hebelkun { z-index: 2; -webkit-transform: translateY(37px); -webkit-animation: hebelkun-motion 0.5s ease 2s 1 normal forwards; } #header-logo-hi { z-index: 1; -webkit-transform: translate(-40px,58px); -webkit-animation: hi-motion 0.5s ease 2s 1 normal forwards; } @-webkit-keyframes head-motion { 0% {-webkit-transform: rotate(24.5deg);-webkit-transform-origin: 40px 106px;} 13% {-webkit-transform: rotate(24.5deg);-webkit-transform-origin: 40px 106px;} 100% {-webkit-transform: rotate(0);} } @-webkit-keyframes hebelkun-motion { 0% {-webkit-transform: translateY(37px);} 100% {-webkit-transform: translateY(0px);} } @-webkit-keyframes hi-motion { 0% {-webkit-transform: translate(-40px,58px);} 30% {-webkit-transform: translate(-40px,58px);} 100% {-webkit-transform: translate(0,0);} }
HTMLのソース
<div id="header-logo"> <img src="ドロイド君の胴体の画像" id="header-logo-body" width="200" height="200"> <img src="ドロイド君の頭の画像" id="header-logo-head" width="200" height="200"> <img src="ヘーベル君の画像" id="header-logo-hebelkun" width="200" height="200"> <img src="\ハーイ/の画像" id="header-logo-hi" width="200" height="200"> </div>
※animation-delayが2sに指定されていますが、本当はJavaScriptを使ってページを読み込み終わってからアクションした方がいいです。ただ面倒・・・