[mootools]クリックでフェードインアウトさせる

ボタンやリンククリックでフェードインアウトさせるサンプル。
※このサンプルは前バージョン(1.1.2)で書いたものです。追記で1.2の解説もしてます。

$('nav').effect('opacity').set(0);
$('nav').effect('height').set(0);

var navFx = new Fx.Styles('nav',{duration: 300, transitions: Fx.Transitions.backIn});
$('run').addEvent('click', function() {
var height = $('nav').getStyle('height').toInt();
if (height > 0){navFx.start({ 'height': 0, 'opacity': 0 });}
else{navFx.start({ 'height': 50, 'opacity': 1 });}
});

<a href="#" id="run">button</a>
<div id="nav"> mootools sample</div>

$('nav').effect('opacity').set(0);
透明エフェクトを#navにセットする。初期値0

$('nav').effect('height').set(0);
#navのheightを0にセット。

var navFx = new Fx.Styles('nav',{duration: 300, transitions: Fx.Transitions.backIn});
#navに対しFx.Stylesクラス作成。navFxに格納。

$('run').addEvent('click', function()
#runがクリックされたら実行。

var height = $('nav').getStyle('height').toInt();
#navのheightを取得。toInt()でpxを除外する。

if (height > 0){navFx.start({ 'height': 0, 'opacity': 0 });}
もしheightが0より大きかったら

else{navFx.start({ 'height': 50, 'opacity': 1 });}
heightが0なら

for ver1.2

mootools ver1.2の場合は次のようになります。

window.addEvent('domready', function(){
	var myFx = new Fx.Morph($('nav'),{transition:"back:in"}).set({
	    'height': 0,
	    'opacity': 0
	});

	$('run').addEvent('click', function() {
		var height = $("nav").getStyle('height').toInt();
		if (height > 0){
			myFx.start({
				opacity:0,
	            height: '0px'
       		});
		}else{
			myFx.start({
				opacity:1,
	            height: '50px'
       		});
		}
	});

});

Fx.Stylesは廃止され、Fx.TweenFx.Morphになりました。
上記ソースはFx.Morphを使用しています。

直接Elementへtweenがセットできるショートカットメソッドが追加されたので、
透明度や高さなど、何か1つだけ変更したい場合は
Element.tween()Element.fade()などのショートカットメソッドが便利です。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください