アニメーションを利用する方法 ~ Scriptaculous の利用

まずはデモを試してみてください。下記のフォームで、Show Options をクリックすると、追加入力項目が表示されます

Show Options

このデモのように、スライドして HTML 要素を表示するようなアニメーション視覚効果を利用したい場合は、 scriptaculous を利用すると便利です。

Scriptaculous

ダウンロード

こちらのサイトからダウンロード可能です。

script.aculo.us
http://script.aculo.us/
ダウンロードページ

使い方

上記ページでダウンロードしてきたアーカイブを展開します。その中の src ディレクトリに必要なスクリプトがあります。 ダウンロードしてきた scriptaculous で使われている prototype.js は lib ディレクトリにあります。利用するときは、 ただ、次のようにスクリプトをインクルードするだけです.

<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="scriptaculous.js"></script>

サンプルコード

scriptaculous の一番の魅力はなんといっても使い方が簡単だということです。 上記例のように HTML 要素をスライド・アップ/ダウンさせるには、下記のように書きます。

スライド・ダウンの場合:

Effect.SlideDown('elm_id', { duration:0.2 });

スライド・アップの場合:

Effect.SlideUp('elm_id', { duration:0.2 });

このように Effect にはその他、Effect.BlindUp, Effect.DropOut,... など多数のメソッドが 用意されています。script.aculo.us のページのデモをご覧になるといいでしょう。

参考のため、上記デモのコードを以下に記載します。


var g_sliding = false;
var g_show = false;

Event.observe(window,'load',window_onload,false);

function window_onload(evt){

	Event.observe('option_label','click',label_onclick,false);
	$('option_label').onselectstart = function () { return false; };
	
}


function label_onclick(evt){

	toggle_option();

}

function toggle_option(){

	if(g_sliding){
		return;
	}

	if(g_show){
		g_sliding=true;
		Effect.SlideUp('form1_option', { duration:0.2 });
		set_label('Show Options');
		setTimeout('g_show=false;g_sliding=false;',300);
	}
	else{
		g_sliding=true;
		Effect.SlideDown('form1_option', { duration:0.2 });
		set_label('Hide Options');
		setTimeout('g_show=true;g_sliding=false;',300);
	}
}

function set_label(s){
	$('option_label').innerHTML = s;
}

連続クリックなどに備えて、ちょっとコードが増えています。g_sliding フラグで、 アニメーションの実行中か否か判断し、g_show フラグでオプションが表示かどうか判断します。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説