Windy: A Plugin for Swift Content Navigation

This jQuery plugin can be used to swiftly navigate content items. The effect will make the items fly away like a deck of cards caught in a tiny storm.

Windy - A Plugin for Swift Content Navigation

Windy is a jQuery plugin that allows a rapid navigation through a pile of items using some CSS 3D transforms and transitions. The effect of a continuous navigation flow reminds of a deck of cards or sheets flying away, hence the name. This plugin idea is inspired by the CSS shaders examples as shown in the CSS shaders Flipbook video by Adobe.

There are several options available, including defining the range of spreading the items when navigating, speed (CSS transitions), adding custom navigations, etc.

For browsers that don’t support CSS 3D transforms or transitions, there will be a simple fallback, i.e. normal navigation of the items (appear/disappear).

For using the plugin, an unordered list with the class “wi-container” is expected:

<ul id="wi-el" class="wi-container">
		<img src="images/demo1/1.jpg" alt="image1"/>
		<h4>Coco Loko</h4>
		<p>Total bicycle rights in blog four loko raw denim ex, helvetica sapiente odio placeat.</p>
	<li> <!-- ... --> </li>
	<li> <!-- ... --> </li>
	<li> <!-- ... --> </li>
	<!-- ... --> 

The plugin can be called like this:

$( '#wi-el' ).windy();


The following options are available:

// the options
$.Windy.defaults = {
	// if we want to specify a selector that triggers the next() function. Example: '#wi-nav-next'.
	nextEl : '',
	// if we want to specify a selector that triggers the prev() function.
	prevEl : '',
	// rotation and translation boundaries for the items transitions
	boundaries : {
		rotateX : { min : 40 , max : 90 },
		rotateY : { min : -15 , max : 15 },
		rotateZ : { min : -10 , max : 10 },
		translateX : { min : -200 , max : 200 },
		translateY : { min : -400 , max : -200 },
		translateZ : { min : 250 , max : 550 }

The boundaries define the values for the “dispersing” or “flying away” of the items. The plugin will randomly select a value between the indicated limits.

The following public methods are available to use in combination with navigation elements:

  • next()
  • prev()
  • navigate(position)

If you’d like to see some examples on how to use navigation elements, check out the demos where we use arrows and the jQuery UI slider element.

The CSS transition and basic styling is defined in the windy.css file.

Check out the three demos with different configurations:

Tagged with:

Manoela Ilic

Manoela is the main tinkerer at Codrops. With a background in coding and passion for all things design, she creates web experiments and keeps frontend professionals informed about the latest trends.

Stay in the loop: Get your dose of frontend twice a week

👾 Hey! Looking for the latest in frontend? Twice a week, we'll deliver the freshest frontend news, website inspo, cool code demos, videos and UI animations right to your inbox.

Zero fluff, all quality, to make your Mondays and Thursdays more creative!

Feedback 48

Comments are closed.
  1. Again an excellent navigation ! Every time I see updates from this site I get surprised ! Good work ! Keep it up.

  2. Thanks for the plug in. It was exactly what I was looking for. Also thanks for Github add. I’ll make it a point to visit your repo often!

  3. Just wondering how can you put two sets of the elements in one page like two of the demo 1 shuffler without using too much css round-a-bouts?

  4. Hi nice article.. I was trying to dynamically update the list. so new images would dynamically appear.
    Maybe an endless loop?

    I ran into a problem with the new list elements not being indexed? Firebug can show the new elements being created but they are not accessible

    I’ve posted partial code on jfiddle just plug them straight into demo1

  5. Loving it! Galleries and image slides and such are funny things. I always find that when I need a good one I can never find it. Hence this one being added directly to my evernote account. I would like to see what it does when a lightbox effect is applied…? Just curious if anyone has tried. If not I will get around to it at some point and re-post. Just thinking that might really make this even more versatile. 🙂

    Love the concept, and love the blog BTW! Keep it up man!

  6. Awesome gadget!.
    I tested this plugin on a google site. Create it using a google gadget.
    There is overlay problem. All the images are just displayed in a list.
    Would be nice if it can work on google sites too 🙂

  7. Nice Plugin !

    Your demo is working fine on Chrome. I tried to implement this and working fine in Firefox but Animation is not happening in chrome. Its just showing transition but not that page curling or windy effect.

    What will the issue be ? Please help me to get it done !!


  8. Hi,

    Navigating to next image is fine.
    but navigating back to previous image leaves image in background.( That means the images are stacked one on the other)

    For example,

    If you have images with transparent background you can easily find out that there is the previous image on the background.
    but navigating to next image is fine.

    Can any one please tell me how to overcame this ?

    Or if not implemented ,
    @Pedro : please look into this issue . hope I am clear..

    Thank you

  9. Pretty plugin! But it can be awesome – if you’ll add possibility to preview images and click on it to choose. Thanks

  10. very nice effect. is it possible to show more than one windy on a site? i tried but it doesn’t work. i think because of the div id…