1. Code
  2. News

Using the Wonderful jFlow Plugin

Scroll to top
Read Time: 6 min

It seems that the obsession of the web design industry right now is the ability to create a "featured section". While it once may have required a great deal of skill, that is no longer the case. In this screencast, I'll show you how to easily create a scrollable featured section using one of Theme Forest's popular themes as a reference. Let's get into it!

* Sorry about the less than perfect audio quality. I meant to pick up a condenser microphone this week, but I've been super busy. I promise to get that taken care of ASAP. Also, if you're interested in creating video tutorials for us, email me at

You can view and purchase Justin's theme here.

Download The Plugin

As always with a new plugin, the first step is to visit the creator's website and download the plugin. All that you'll need is a tiny Javascript file - and of course a copy of the jQuery core library. While you're at the site, take a few moments to go over the concepts. You'll be amazed at how simple the implementation is, relatively speaking (or typing?).



After you've saved the Javascript file to your hard drive, import into a new web application like so.

<script type="javasript" src="js/jQuery1.2.6.js"></script>
<script type="javascript" src="js/jFlow.js"></script>

* Note that you should be importing the core library before jFlow. Otherwise, you'll get some obvious errors!

To use the jFlow plugin, you'll need to understand the function of some ids and classes.

  • div#controller: This element will serve as our "hook" when calling our jQuery.
  • .jFlowControl: These spans will be children of the #controller div. For as many slides as you have, you must create associated span tags with this class. For example, if I had five slides, I must have five tags with a class of .jFlowControl. You'll understand this more by example, shortly.
  • div#slides: Within the slides div, you need to nest additional divs that contain your desired content for each "slide". More on this later.
  • .jFlowPrev, .jFlowNext: These two classes allow you to continue to the next slide, or vice versa.

Sample HTML Document

<div id="wrap">
    <div id="controller">
       <span class="jFlowControl">No 1 </span>
       <span class="jFlowControl">No 2 </span>
       <span class="jFlowControl">No 3 </span>
    <div id="prevNext">
    <img src="images/prev.png" alt="Previous" class="jFlowPrev" />
    <img src="images/next.png" alt="Next" class="jFlowNext" />
    <div id="slides">
       <div><img src="images/1.jpg" /><p>Here is a featured image. Nice!</p></div>
       <div><img src="images/2.jpg" /><p>Here is another neat featured image. Nice!</p></div>
       <div><img src="images/3.jpg" /><p>Here is one last very cool featured image. Nice!</p></div>
</div><!-- end wrap -->

Let's go over this a bit.

  • As with most pages, we've wrapped our entire contents in a "wrap" element. This is purely for aesthetic reasons. It's not required.
  • In my controller div (which is the hook for jFlow), I've added three span tags with a class of "jFlowControl". Think of these spans as tabs. If you click "No 3", it will quickly cycle to the third associated "slide". Remember, the number of span tags that you have must be equal to the number of divs within your "slide" div. Note that both have three.
  • Moving along, we now come to a div with an id of "prevNext". This isn't a key id, I could have named it Rick if I had wanted. It's simply a wrapper div so that I can control where my "Next" and "Previous" buttons go on the page. The class name of the images are important however: 'jFlowPrev', 'jFlowNext'.
  • Last, we come to the "slides" div. Within this div, we'll place children divs. Each of these children will serve to be one "tab". Once again, note that if I wanted to add a fourth image, I would also need to an additional "jFlowControl" span tag within the controller div.


The code that we have to write is quite simple. First, review the final script, and then I'll go over each line.

$(function() {
        slides: "#slides",
        width: "980px",
        height: "313px",
        duration: 600

That's it!. First, we're waiting for when the document is ready to be traversed. Then, we grab our controller div and call the "jFlow" method. There are many parameters available to us, but we'll just use a few.

  • Slides: It's asking, "What is the name of the div element that contains each slide - or tab? We'll associate it with the appropriate "slides" div that I created earlier. But, you can change it if you like.
  • Width, Height: These are required. In this example, I'm only using images. As a result, I've set the width and height values equal to those of the images.
  • Duration: In milliseconds, how long do you want the transition from slide to slide take? I've set 600 - which is about one half of a second.

You're Finished

The only other thing that you'll want to implement is some CSS styling. However, jFlow will work perfectly without it. That would obviously only be for aesthetic reasons. If you desire more information, I go over the styling a bit more in the screencast.

Final Simple ProductFinal Simple ProductFinal Simple Product

The only other thing that you'll want to implement is some CSS styling. However, jFlow will work perfectly without it. That would obviously only be for aesthetic reasons. If you desire more information, I go over the styling a bit more in the screencast.

The layout that see above is intentionally simple. I'll leave it to you to imagine all of the different uses!

A few weeks ago, Chris Coyier created a tutorial on a similar plugin - "codaSlider". I've personally used the plugin in a couple of projects, however, I've found that jFlow is much simpler and easier to use. Either way, both are powerful plugins. Use them wisely.

Subscribe to the Weekly Screencasts

You can add our RSS feed to your ITUNES podcasts by doing the following:

  1. Once ITUNES has loaded, clicked the "Advanced Tab"
  2. Choose "Subscribe to Podcast"
  3. Enter ""

That should do it! The screencast will also be searchable on ITUNES in the next twenty four hours.

Additional Resources

  • How jquery Works

    jFlow Plugin

    This is the home site of the jFlow plugin. It'll get you started with the Javascript file along with some helpful examples.

    Visit Website



    If you're looking to learn more, or to simply make some extra money, make sure that you pay a visit to

    Visit Website

  • Dynamic Fun with Simple Pie and jQuery

    Dynamic Fun with Simple Pie and jQuery - Coda slider tutorial

    Check out another jQuery plugin that performs a similar function. In this tutorial, Chris Coyier will show you how you can implement the coda slider plugin to create a beautiful blogroll.

    Read Article

    • Subscribe to the NETTUTS RSS Feed for more daily web development tuts and articles.

Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.