Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I fade in and out a hidden element using Mootools

I am trying to fade in a hidden element, and then fade it back out again using mootools.

I can't just use $('my_div').fade('toggle'), because that assumes the element is always visible, whereas my div starts out with display:none.

Is there a simple way to combine a fade in/out with a slide in/out or some other way to achieve a nice effect?

like image 626
Brian Ramsay Avatar asked Sep 01 '09 19:09

Brian Ramsay


3 Answers

I almost always use Fx.Reveal in Mootools.More:

http://mootools.net/docs/more/Fx/Fx.Reveal

Very nice fade-in animation, almost no effort on your part. Fx.Slide might also do the trick, although it tends to be more fiddly.

If you don't want to use Mootools.More, then rolling your own solution with Fx.Morph to change both height and opacity simultaneously could also do the trick.

like image 128
One Crayon Avatar answered Oct 06 '22 01:10

One Crayon


I prefer using display: none as well. You can just use this code when you want to fade the element:

To fade in:

$('my_div').setStyle('display', 'block');
$('my_div').fade('in');

and to fade out:

$('my_div').fade('out');
$('my_div').setStyle('display', 'none');

Alternatively, you could just setup a class that is called .hide with display: none set in it, and put that class on your element to start with. Then it makes the code easier:

$('my_div').toggleClass('hide');
$('my_div').fade('toggle');
like image 43
Shawn Steward Avatar answered Oct 05 '22 23:10

Shawn Steward


Start out with opacity:0 and display:block. That way you can use fade()

like image 38
bucabay Avatar answered Oct 06 '22 01:10

bucabay