バナーチェンジ

[ソースコード]

<div id="bannerbox">
	<div id="banner_left">
		<a href="#" id="banner_anchor1"><img src="" alt="" id="banner_img" width="100" height="30" /></a>
	</div><!-- /#banner_left -->
	<div id="banner_right">
		<a href="#" id="banner_anchor2">now loading...</a>
	</div><!-- /#banner_right -->
<div id="banner_bottom">
<form>
	<input type="button" id="start" value="バナーチェンジ" /> <input type="button" id="stop" value="ストップ" />
</form>
</div><!-- /#banner_bottom -->
</div><!-- /#bannerbox -->

<script type="text/JavaScript">
var banners = new Array(); // 配列の要素の中に別の連想配列が入る多次元配列
	banners[0] = {"src" : "image/banner1.jpg" , "title" : "バナー画像1" , "href" : "#"};
	banners[1] = {"src" : "image/banner2.jpg" , "title" : "バナー画像2" , "href" : "#"};
	banners[2] = {"src" : "image/banner3.jpg" , "title" : "バナー画像3" , "href" : "#"};

var banner_interval_ms = 1000;
var banner_tid;
var banner_index = 0;

var start = document.getElementById('start');
var stop = document.getElementById('stop');

start.onclick = function(){
	changeBanner();
	banner_tid = setInterval("changeBanner()" , banner_interval_ms);
	start.disabled = true;

	stop.onclick = function(){
		clearInterval(banner_tid);
		start.disabled = false;
	}
}

/*********************************
setIntervalで呼び出す関数
*********************************/
function changeBanner(){
	var data = banners[banner_index];
	
	/*********************
	img src=" " alt=""をセット
	*********************/
	var img = document.getElementById('banner_img'); // 画像を取得
	img.setAttribute('src' , data['src']); // 配列要素をブラケット記法で設定 srcにbanners[0]のsrcをセット
	img.setAttribute('alt' , data['title']);
	
	/*********************
	a href=""をセット
	*********************/
	var anchor1 = document.getElementById('banner_anchor1');
	anchor1.setAttribute('href' , data['href']);
	var anchor2 = document.getElementById('banner_anchor2');
	anchor2.setAttribute('href' , data['href']);
	
	/*********************
	テキストをセット
	*********************/
	anchor2.firstChild.nodeValue = data['title'];
	
	/********************
	ループ処理
	********************/
	banner_index++; // setIntervalが1回実行される毎にインデックス番号が1ずつ増える
	
	/********************
	ループの条件
	********************/
	if(banner_index >= banners.length){ // Arrayの要素数を超えたら
		banner_index = 0;
	}
}
</script>

※多次元配列多次元配列の取り出し方

インデックスページに戻る