【レポート】
|
Thomas Fuchs, author of the script.aculo.us user interface JavaScript library, a member of the Prototype core team and a Ruby on Rails core alumnus. |
mir.aculo.usのCreating awesome CSS3 animationsにおいて、CSS3を使った素晴らしいアニメーションの例としてFreelance Treasure Mapが紹介されている。Chrome、Chromium、SafariなどのWebKitベースのブラウザでアクセスするか、iPadまたはiPhoneからアクセスすると、ページ上部に掲載されている海賊のアニメーションを確認できる。
Freelance Treasure Mapに掲載されている海賊はCSS3の機能を使ってアニメーションするようになっており、地図をもった腕が上下に動くほか、帽子についている時計が反時計まわりに回っている。目は瞬きする仕組みになっている。この動作はCSS3の機能を使って実装されており、JavaScriptは使われていない。
CSS3の機能を使って実装しているものの、CSS3に対応していないブラウザであっても表示は崩れることなく表示される。後方互換を実現しつつ、CSS3に対応したブラウザでは最新機能を利用できるサンプルとして参考になる。使われているテクニックは次のとおり。
@-webkit-keyframes arm {
from { -webkit-transform: rotate(0deg); }
70% { -webkit-transform: rotate(9.7deg); }
to { -webkit-transform: rotate(0deg); }
}
#arm {
position:absolute;
-webkit-transform-origin:0% 60%;
-webkit-animation:arm 3.9s ease-in-out infinite alternate;
left:360px;bottom:0;width:246px;height:210px;
background:url(img/arm.png);
}
動いている腕と地図は透過PNG24の画像になっている。アニメーションは@-webkit-keyframesでフレームを指定して実現。-webkit-transform-origin:0% 60%;で回転軸を指定しているところと、-webkit-animation:でアニメーションを指定しているところがポイントとなる。
@-webkit-keyframes pointer {
from { -webkit-transform: rotate(0deg) scaleY(1); }
25% { -webkit-transform: rotate(-90deg) scaleY(0.9); }
50% { -webkit-transform: rotate(-180deg) scaleY(1); }
75% { -webkit-transform: rotate(-270deg) scaleY(0.8); }
to { -webkit-transform: rotate(-360deg) scaleY(1); }
}
#pointer1 {
position:absolute;left:257px;top:177px;width:9px;height:23px;
background:url(img/pointer1.png);
-webkit-transform-origin:5.5px 18px;
-webkit-animation:pointer 4s linear infinite;
}
#pointer2 {
position:absolute;left:257px;top:177px;width:9px;height:23px;
background:url(img/pointer1.png);
-webkit-transform-origin:5.5px 18px;
-webkit-animation:pointer 9s linear infinite;
}
回転する時計も、基本的には前述した上下に動く腕と同じテクニックが使われている。時計では長針と短針には同じ画像を使い回している。-webkit-animation:で秒数の指定を変えることで、あたかも長針と短針のように振る舞わせている。
時計でのポイントは、針の長さ(この場合はY軸方向の長さになっている)をscaleYでスケールさせている点にある。帽子の上の時計は真円ではなく楕円になっている。この楕円に合わせて針のサイズが変わるようになっており、この指定がよりファンシーな雰囲気を出している。
#eye {
position:absolute;left:282px;top:269px;width:28px;height:26px;
background:url(img/eye.gif);
}
瞬きする目にはアニメーションGIFが使われている。アニメーションGIFを背景画像に割り当てただけだ。
Creating awesome CSS3 animationsではFreelance Treasure Mapで使われている機能はいずれはすべてのブラウザがサポートすることになる機能であり、今このテクニックの採用をためらう必要はないと指摘している。
| 画像をiPhoneやiPad向けに最適化する方法 [2010/8/13] |
| JavaScriptを高速化する6つのテクニック [2009/11/11] |
| JavaScriptを高速化する31のチェックリスト [2009/10/29] |
| マイナビ、3月より書籍連動型のクリエイティブ・デザイン系セミナー開講 [12:00 2/10] |
| Linux Mint 12 KDE登場 [10:26 2/10] |
| Dell、重複排除により最大98%のデータ削減が可能なバックアップストレージを発売 [09:44 2/10] |
| 北大、「ポジトロン断層撮影法」による脳腫瘍の性質を診断する手法を開発 [09:40 2/10] |
| NICTなど、手術支援ロボット「da Vinci」の3D裸眼映像伝送実証実験を計画 [09:36 2/10] |
|
カシオ、子供の入園/入学にぴったりな[お名前・似顔絵シール]印刷サービス [17:38 2/10] 家電 |
|
TVウォッチャーの芸能まるごと1週間 - メイサ&赤西結婚、花子妊娠に沸いた [17:10 2/10] エンタメ |
|
竹達彩奈、デビューシングル「Sinfonia! Sinfonia!!!」を4/11にリリース [17:02 2/10] ホビー |
|
一緒に住むのをためらってしまう相手のクセとは? [17:00 2/10] キャリア |
|
日産、スカイラインクーペ特別仕様車「55th Limited」を55台限定発売 [16:54 2/10] ライフ |