I have a Flexislider that I would like to control from outside the element. I tried this:
var myslider = $('.slider').flexslider({
animation: 'slide'
});
$('button').click(function () {
myslider.flexAnimate(3) //Function: Move slider - (target, pause) parameters
});
But that returns TypeError: Object [object Object] has no method 'flexAnimate'
Then I stumbled upon this thread (https://github.com/woothemes/FlexSlider/issues/125) which indicates this is the proper method:
$('button').click(function () {
myslider.flexslider(3)
});
However I don't see how I can specify the speed of the animation. I want the change to be instant for that event only.
I guess I'm wondering how one accesses the slider API as mentioned in the docs from outside the slider element
slider //Object: The slider element itself
slider.container //Object: The ul.slides within the slider
slider.slides //Object: The slides of the slider
slider.count //Int: The total number of slides in the slider
slider.currentSlide //Int: The slide currently being shown
slider.animatingTo //Int: Useful in .before(), the slide currently animating to
slider.animating //Boolean: is slider animating?
slider.atEnd //Boolean: is the slider at either end?
slider.manualPause //Boolean: force slider to stay paused during pauseOnHover event
slider.controlNav //Object: The slider controlNav
slider.directionNav //Object: The slider directionNav
slider.controlsContainer //Object: The controlsContainer element of the slider
slider.manualControls //Object: The manualControls element of the slider
slider.flexAnimate(target) //Function: Move slider - (target, pause) parameters
slider.pause() //Function: Pause slider slideshow interval
slider.resume() //Function: Resume slider slideshow interval
slider.canAdvance(target) //Function: returns boolean if slider can advance - (target) parameter
slider.getTarget(dir) //Function: get target given a direction - "next" or "prev" parameter
You can access the slider object like this:
var exampleSlider = $('#slider').data('flexslider');
// now you can access all the methods for example flexAnimate
exampleSlider.flexAnimate(..);
As mentioned above you can find this in the API description at https://github.com/woothemes/FlexSlider (line in source: https://github.com/woothemes/FlexSlider/blob/master/jquery.flexslider.js#L674)
With the latest (2.1) version of Flexslider you can utilise the external api like so:
$('button').click(function () {
$('.slider').flexslider(3);
});
Full details on the API are at https://github.com/woothemes/FlexSlider#updates
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With