料金・ご注文・お問い合わせ

HTML5特設サイト HTML5 Lab. HTML5、CSS3を実験的に公開。日々研究に努めてまいります。

HTML5 column

背景画像をアニメーションさせる

2011.07.08


jQueryを使って背景画像をアニメーションさせるJavaScriptを紹介します。

■JavaScriptの解説

function cloudInit(){
  $(window).bind("resize",resize);
	var winW;
	var cw=$(".cloudWrap");
	function resize(){
    if(!$.support.noCloneEvent){
      winW=document.body.clientWidth-16;
    }else{
      winW=window.innerWidth-16;
    }
	}
	function init(){for(var i=0;i<cw.length;i++)movSet(cw,i)}
	function start(){for(var i=0;i<cw.length;i++)cw[i].movStart()}
	function movSet(jq,n){
		var si,px=0,delay=60/(n+1);
		jq[n].mov=function(){
			px++;
			if(px>673)px=px-673;
			jq.eq(n).css("background-position",px+"px 0");
		}
		jq[n].movStart=function(){clearInterval(si);si=setInterval(h,delay)}
		jq[n].movStop=function(){clearInterval(si)}
		function h(){jq[n].mov()}
	}
	init();
	resize();
	start();
}

今回は雲の画像を使って右に流れていくアニメーションを作成します。

var cw=$(".cloudWrap");

この部分にアニメーションさせたい背景を配置するclass名を記述。

if(px>673)px=px-673;

ここには背景に使用する画像の幅を記述。

以上でJavaScriptの設定は完了です。

■設置方法

まずは<head>内に以下のコードを記述します。

<script type="text/javascript" src="common/js/jquery.js"></script>
<script type="text/javascript" src="common/js/bg_animation.js"></script>
<script type="text/javascript">
$(function(){
	cloudInit();
});
</script>

■コードの記述

背景用のdivを用意し、JavaScript内に指定したclass名を付けます。
idは個別の背景画像用です。

<div class="cloudWrap" id="cloud1"></div>
<div class="cloudWrap" id="cloud2"></div>

■CSSの記述

.cloudWrap{
	position:absolute;
	width: 100%;
	height:278px;
	overflow:hidden;
	z-index: 1;
}
#cloud1{background: url(../img/cloud01.png) repeat-x;}
#cloud2{background: url(../img/cloud02.png) repeat-x;}

以上で設置完了になります。

>> DEMO

今回は雲を動かしましたが、反対に陸地を動かしたり、
鳥や飛行機なんかを動かすのも面白いかもしれません。

  • P'CHECKER
  • HTML5特設サイト HTML5 Lab. HTML5、CSS3を実験的に公開。
  • program factory
  • design factory
  • 法人プラン 通常のご注文よりお得なプリペイドプラン
  • よくあるご質問
  • WANTED

Valid XHTML 1.0 Strict

正当なCSSです!

iPhone、iPad、Multi-Touch は、米国および他の国々で登録されたApple Inc.の商標です。
iPhone 商標は、アイホン株式会社のライセンスに基づき使用されています。

ページトップへ戻る