How To Use Flexslider with WordPress

How To Use Flexslider with WordPress

Flexslider is the most popular jQuery responsive slider that provides designers and developers a fast way to get up and running with a image slider. It has keyboard shortcuts and works with swipe on touch screens.

A little information about Flexslider

Browser Support

Flexslider support Safari 4+, Chrome 4+, Firefox 3.6+, Opera 10+, and IE7+. iOS and also Android devices as well. It also support jQuery versions 1.3+.

Key Features

  • Very simple, semantic markup
  • Support all major browsers
  • Horizontal/vertical slide and fade animations
  • Support multiple slider, Callback API, and more
  • Support hardware accelerated touch swipe
  • Custom navigation options
  • Use any HTML elements in the slides


Get started with Flexslider

Step 1 – Link jQuery with FlexSlider CSS/JS

Add the three essential CSS & JS files to the <head> of your document. It will link jQuery and the FlexSlider core CSS/JS files into your webpage.

<link rel="stylesheet" href="css/flexslider.css" type="text/css">
<script src="js/jquery.flexslider.js"></script>

Step 2 – Add the markup

To add Flexslider markup first start with a single containing element with <div class=”flexslider”>, then create a <ul class=”slides”>.  You can put your images and anything else you desire into each <li>.

<!– Place somewhere in the <body> of your page –>

<div class=”flexslider”>
<ul class=”slides”>
<img src=”slide1.jpg” />
<img src=”slide2.jpg” />
<img src=”slide3.jpg” />

Step 3 – Hook up

Next you need to hook the ‘flexslider’ jQuery method to your div, which you can do with the following code. You have to add the codes of Javascript into the <head> of your document, below the links from Step 1. Note that the Flexslider official site recommends using (window).load() instead of (document).ready() to ensure the content of the page is loaded before the plugin initializes.

<!– Place in the <head>, after the three links –>
<script type=”text/javascript” charset=”utf-8″>
$(window).load(function() {

Step 4 – Customize Flexslider to your needs

You can customize FlexSlider to suite your needs with the following code.

namespace: “flex-“, //{NEW} String: Prefix string attached to the class of every element generated by the plugin
selector: “.slides > li”, //{NEW} Selector: Must match a simple pattern. ‘{container} > {slide}’ — Ignore pattern at your own peril
animation: “fade”, //String: Select your animation type, “fade” or “slide”
easing: “swing”, //{NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported!
direction: “horizontal”, //String: Select the sliding direction, “horizontal” or “vertical”
reverse: false, //{NEW} Boolean: Reverse the animation direction
animationLoop: true, //Boolean: Should the animation loop? If false, directionNav will received “disable” classes at either end
smoothHeight: false, //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode
startAt: 0, //Integer: The slide that the slider should start on. Array notation (0 = first slide)
slideshow: true, //Boolean: Animate slider automatically
slideshowSpeed: 7000, //Integer: Set the speed of the slideshow cycling, in milliseconds
animationSpeed: 600, //Integer: Set the speed of animations, in milliseconds
initDelay: 0, //{NEW} Integer: Set an initialization delay, in milliseconds
randomize: false, //Boolean: Randomize slide order

// Usability features
pauseOnAction: true, //Boolean: Pause the slideshow when interacting with control elements, highly recommended.
pauseOnHover: false, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering
useCSS: true, //{NEW} Boolean: Slider will use CSS3 transitions if available
touch: true, //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices
video: false, //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches

// Primary Controls
controlNav: true, //Boolean: Create navigation for paging control of each clide? Note: Leave true for manualControls usage
directionNav: true, //Boolean: Create navigation for previous/next navigation? (true/false)
prevText: “Previous”, //String: Set the text for the “previous” directionNav item
nextText: “Next”, //String: Set the text for the “next” directionNav item

// Secondary Navigation
keyboard: true, //Boolean: Allow slider navigating via keyboard left/right keys
multipleKeyboard: false, //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present.
mousewheel: false, //{UPDATED} Boolean: Requires jquery.mousewheel.js ( – Allows slider navigating via mousewheel
pausePlay: false, //Boolean: Create pause/play dynamic element
pauseText: ‘Pause’, //String: Set the text for the “pause” pausePlay item
playText: ‘Play’, //String: Set the text for the “play” pausePlay item

// Special properties
controlsContainer: “”, //{UPDATED} Selector: USE CLASS SELECTOR. Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be “.flexslider-container”. Property is ignored if given element is not found.
manualControls: “”, //Selector: Declare custom control navigation. Examples would be “.flex-control-nav li” or “#tabs-nav li img”, etc. The number of elements in your controlNav should match the number of slides/tabs.
sync: “”, //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.
asNavFor: “”, //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider

// Carousel Options
itemWidth: 0, //{NEW} Integer: Box-model width of individual carousel items, including horizontal borders and padding.
itemMargin: 0, //{NEW} Integer: Margin between carousel items.
minItems: 0, //{NEW} Integer: Minimum number of carousel items that should be visible. Items will resize fluidly when below this.
maxItems: 0, //{NEW} Integer: Maxmimum number of carousel items that should be visible. Items will resize fluidly when above this limit.
move: 0, //{NEW} Integer: Number of carousel items that should move on animation. If 0, slider will move all visible items.

// Callback API
start: function(){}, //Callback: function(slider) – Fires when the slider loads the first slide
before: function(){}, //Callback: function(slider) – Fires asynchronously with each slider animation
after: function(){}, //Callback: function(slider) – Fires after each slider animation completes
end: function(){}, //Callback: function(slider) – Fires when the slider reaches the last slide (asynchronous)
added: function(){}, //{NEW} Callback: function(slider) – Fires after a slide is added
removed: function(){} //{NEW} Callback: function(slider) – Fires after a slide is removed
You are unauthorized on

×Sign in Sign up

As always, here are some insights from the designer:

FlexSlider serves beginners by being virtually plug and play, needing only the FlexSlider files and some images to get started. To seasoned developers, FlexSlider should be seen as a tool that gets them rolling quickly. It doesn’t add unnecessary markup and gives complete freedom to
use any HTML element within each slide.

The most exciting thing about FlexSlider at this point, in my mind, is the slide animation. It was a challenge to construct, but the resulting responsive behaviour is very cool. When you mix the slide animation with touch gestures, it creates a great experience across iOS and Android devices.

You may also like: How To Use PayPal Checkout in WooCommerce

Leave a Reply