STERFIELD
開発ナレッジ2012.09.27

jQueryで歩くアニメーションに挑戦

jQueryを使ってFlashのようなアニメーションを目指す練習として、

歩くアニメーション作りに挑戦しました。

 

 

作り方

 

1.背景画像を準備する

今回は遠近感を出すために、遠くの背景から近くの背景に向かうにつれて、

早くアニメーションするようにします。

そのため、近くの背景ほど、長さのある背景にしました。

重ねて表示するので、PNGで書き出しました。

 

動かない背景

 

一番遠くの山

 

近くの山

 

一番近くの山

 

道(一番手前の背景)

 

2.歩く人の画像を準備する

今回は簡単に、2コマで歩いている状態を表現することにしました。

人物の高さを上下させると歩いている様子が伝わりやすいです。

3.HTMLを準備する

“view”というoverflow:hiddenにしたボックスの中に、背景をposition:absoluteで順番に重ね、

最前面の人は、画像を切り替えるので、CSSのbackgroundでファイルを指定しました。

右から左に動くので、右を基準に配置しました。

 

HTML

 

CSS

 

4.jQueryで操作する

今回のアニメーションは、主に2つの操作で行いました。

i.背景の画像を動かす

それぞれの背景の画像を、animate()のrightを使って、右から左へ、動かします。

手前の画像ほど、動かす量を多くすることで、速さを変え、遠近感を出しました。

 

ii.人物画像を定期的に切り替える

setInterval()を使って、人物の画像を0.5秒ごと、

交互に切り替えるようにしました。

 

背景画像のanimate()は処理が終わると勝手にとまりますが、

setInterval()の場合は永遠に動き続けることになるので、

countHitoという変数で動いた数を数え、

背景画像のアニメーションの終了に合わせて、画像を切り替えるのをやめるようにしました。

 

javascript

 

こちらが実際に製作したアニメーションです

DEMO

 

人のアニメーションのコマ数を増やしたり、

背景の動きを細かく調整することで、

よりリアルなアニメーションにすることができると思います。

WRITER

ninomiya

Webデザイナー兼コーダー出身のフロントエンド開発者です。 UXデザインやチーム開発の効率化など、勉強中です。

この著者の記事を見る

CONTACT

記事の内容について
相談したい方へ

実際の進め方は、状況を伺ってからご提案します。

2営業日以内にご返信します
資料ダウンロード無料相談に申し込む