MooTools Gone Wild: Element Flashing

By  on  

If you're like me and lay awake in bed at night, you've flipped on the TV and seen the commercials: misguided, attention-starved college girls fueled by alcohol ruining their futures by flashing lame camera-men on Spring Break. Why do they do it? Attention, of course. That got me to thinking -- I should go download some what about when we want a user's attention to focus on a specific element on the page without using cheesy graphics? Armed with the latest MooTools trunk and a dream, I've implemented flash(), which you can use on any element on the page.


<div id="flash-me">
	<a href="javascript:;" id="flash-link">Click here</a> to make me flash!

The above is just some sample XHTML -- you can make your XHTML code look however you want.

The MooTools JavaScript

	flash: function(to,from,reps,prop,dur) {
		if(!reps) { reps = 1; }
		if(!prop) { prop = 'background-color'; }
		if(!dur) { dur = 250; }
		//create effect
		var effect = new Fx.Tween(this, {
				duration: dur,
				link: 'chain'
		//do it!
		for(x = 1; x <= reps; x++) {

You feed the flash function 2-5 parameters:

  • From: The color you want the element to flash to first.
  • To: The color you want the element to flash to next.
  • Reps: Number of times to repeat the flash.
  • Property: Property to flash. Background color works best.
  • Duration: The duration of the color change

Slick and simple!

The Usage

/* flash on click */
$('flash-link').addEvent('click', function () {

/* flash on ajax complete */
$('flash-link-ajax').addEvent('click', function () {
	//make the ajax call
	var req = new Request({
		method: 'get',
		url: 'element-flashing.php',
		data: { 'do' : '1' },
		onRequest: function() {  },
		onComplete: function(response) {

/* flash on scroll completion */
$('flash-link-scroll').addEvent('click', function() {
	var scroller = new Fx.Scroll(window, {
		onComplete: function() {

There are three examples above. The first makes an element flash right when it's clicked. The second flashes when an AJAX request is complete. The third scrolls down to an element on the page and flashes upon arrival.

Raygun Pulse

Recent Features

  • By
    Facebook Open Graph META Tags

    It's no secret that Facebook has become a major traffic driver for all types of websites.  Nowadays even large corporations steer consumers toward their Facebook pages instead of the corporate websites directly.  And of course there are Facebook "Like" and "Recommend" widgets on every website.  One...

  • By
    CSS 3D Folding Animation

    Google Plus provides loads of inspiration for front-end developers, especially when it comes to the CSS and JavaScript wonders they create. Last year I duplicated their incredible PhotoStack effect with both MooTools and pure CSS; this time I'm going to duplicate...

Incredible Demos

  • By
    Save Web Form Content Using Control + S

    We've all used word processing applications like Microsoft Word and if there's one thing they've taught you it's that you need to save every few seconds in anticipation of the inevitable crash. WordPress has mimicked this functionality within their WYSIWYG editor and I use it...

  • By
    MooTools-Like Element Creation in jQuery

    I really dislike jQuery's element creation syntax. It's basically the same as typing out HTML but within a JavaScript string...ugly! Luckily Basil Goldman has created a jQuery plugin that allows you to create elements using MooTools-like syntax. Standard jQuery Element Creation Looks exactly like writing out...


  1. Please stop. Forget the ability to do this and move along. We don’t need flashing… we finally got rid of flashing text in mark-up! :)

  2. @Marc: Close, but not the same thing.

  3. I think the flashing going on here is still easy on the eyes, I wouldn’t mind this.

    Checkout 1.2 got out of beta, oh yeah!

  4. Thanks for the great tutorial! I’m currently developing a new site and I opted for MooTools over jQuery and I have to admit, I was beginning to regret it. It seemed like there was so much more documentation for it than MooTools. Every day I was seeing 2 or 3 new tutorials for jQuery and none for Moo.

    You’re making things much easier than me, thanks! Keep up the great work!

  5. @Randy: Just like Journey said, “Don’t Stop Believin'”! jQuery has been adopted by the Designer community, which is fine. I’m a developer so I love the MooTools syntax and simplicity. I’m fighting for the Moo!

  6. Chris

    Might want to add a few flags to the flash to denote whether the element is flashing already or not, so that when it gets re-activated (eg: clicking the “click me” on the sample page several times very quickly) the element doesn’t go into some kind of epileptic fit.

  7. @Chris: Not a bad idea Chris.

  8. you might consider writing this as a class that an element can implement rather than just an implement, will be quite a bit more flexible that way.

  9. MrKistic

    Pretty good but I have one issue with it: Rod was the best rocker, but only between ’69 & ’74 ;)

  10. Great! Although…
    I already packaged it into a class – which is sadly not yet MooTools 1.2 based but you can check it out here: MooTools Pulsate class.

    Interested in a 1.2 version? :)

  11. Doesn’t work in mootools 1.1.

    Yeh, I now see most of your articles are written for 1.2, but it took me a good 15 mins before I worked out this wasn’t compatible for 1.1 – might be worth stating “for 1.2” somewhere or in the title?

    Good tutorial, though.

  12. Hey man, just found your blog, fellow Mootools developer here (among other things). Some great inspiration on your site, I will be coming back here. I implemented your tutorial and I’m using a similar method minus one parameter. Basically I do getStyle(‘background-color’) and just flash to that, so you don’t have to know the item’s original background color to flash it.

  13. If I’m not mistaken, the code above will cause some sort of memory leak? Because every time you click on the link, a new Fx.Tween object is created.

  14. Is there a way that i could remove the effect while its still flashing ? What would i have to add to the code so that i could disable the effect whenever i wanted? Im new to mootools but am already loving it , so please help :)

  15. Gui

    Any idea how to add eg border-color to flash as well…

  16. kkrishieee

    Hi david,
    As im new to Mootools, the above example is very useful for me.flashing the background. I have implemented the same thing in my project. The problem im facing is how to stop that flashing.
    For Example:
    1) One side of the page flashes for 5 seconds.
    2) After 5 seconds the other side page has to flash for 5seconds.
    3) vice-versa.

  17. kkrishieee

    Hi david,
    As im new to Mootools, the above example is very useful for me.flashing the background. I have implemented the same thing in my project. The problem im facing is how to stop that flashing.
    For Example:
    1) One side of the page flashes for 5 seconds.
    2) After 5 seconds the other side page has to flash for 5seconds.
    3) vice-versa.

    Im picking my hair since long time.please can you help me out.
    Thanks in advance.

  18. very interesting blog

  19. Jens Lehmann

    Sehr interessantes thema! besucht meine webseite

  20. Anees Iqbal

    David, Your comment parsing plugin sucks, so added some extra spaces.

    • Anees Iqbal

      Okay, I swear I added javascript: in the href attribute, but it removed it. (facepalm)

    • Anees Iqbal

      and it also added rel="nofollow" to it. Man, there’s a lot of broken things around here. :D

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!