Al contrario di molti altri slider prodotti da ciarlatani del web design (super pesanti, strapieni di script, e nient'affatto adattivi alle varie dimensioni degli schermi) qui si presenta IL vero slider responsive e touch-friendly: veloce, pratico, intuitivo. Per i browser non CSS3-compliant è previsto un fallback di animazione controllata da javascript.
È uno slider continuo (ciclo infinito) molto semplice, senza effetti esagerati, leggerissimo, e facilmente configurabile alle proprie esigenze. La personalizzazione è estremamente intuitiva. L'effetto adattivo è completamente creato grazie al CSS3, senza pesanti librerie di javascript.
Sono inoltre implementate le API di YouTube e di Vimeo per ottenere la migliore esperienza web possibile sfruttando appieno tutte le ultime tecnologie HTML5: quando viene guardato un video viene attivato il "cinema theater mode" e tutti i comandi nell'iframe sono abilitati (lo slider va in pausa se l'autoplay era attivo).
Pubblicato con licenza GPLv3
Esempio: slider con autoplay
Immagini e video appartengono ai relativi proprietari e sono stati reperiti liberamente da internet
Esempio: slider con video da YouTube
Immagini e video appartengono ai relativi proprietari e sono stati reperiti liberamente da internet
* Vengono utilizzate le proprietà CSS3 transformX e transition
** I contenuti flash, a meno che non sia settata l'opzione wmode = opaque, si presenteranno sopra ogni elemento html (anche sopra ai menu). E' il comportamento standard di qualsiasi browser e non dipende da questo plugin. Con l'avvento dell'HTML5 il problema non sussiste più, ma nel mondo web le applicazioni in flash sono ancora ampiamente diffuse.
Nella sezione head del documento aggiungiamo i link agli stili e script base:
<head>
...
<script src="JS/fleXlider-vX.X.X.min.js"></script>
...
<link rel="stylesheet" type="text/css" href="CSS/fleXlider-vX.X.X.min.css">
...
</head>
Nel body del documento la struttura dev'essere questa:
<body>
...
<div class="fleXlider" id="myFX">
<div class="fx-cont">
<div class="fx-slider">
<div class="fx-s current"><!-- it's good practice to assign current class to first slide, or slider will flash from empty to filled -->
<!-- background image must be placed on top of all (it's optional) -->
<img class="fx-image" src="example.jpg">
<div class="fx-egg">
<!-- custom content must be placed here (it's optional) -->
</div>
<div class="caption"><div>
<h2><!-- caption title must be placed here (it's optional) --></h2>
<!-- caption content must be placed here (it's optional) -->
</div></div>
</div>
<div class="fx-s">
<div class="fx-egg">
<!-- embedded video from youtube: just copypaste embedding code and don't bother! -->
<iframe width="XXX" height="XXX" src="https://www.youtube.com/embed/XXXXXXXXXXX" frameborder="0" allowfullscreen></iframe>
</div>
</div>
<div class="fx-s video"><!-- class "video": allow play button click for an unsupported video -->
<div class="fx-egg">
<iframe width="XXX" height="XXX" src="https://unknown/video/hoster/XXXXXXXXXXX" frameborder="0" allowfullscreen></iframe>
</div>
</div>
</div>
</div>
</div>
...
</body>
È caldamente consigliato utilizzare i selettori di jQuery. Nella funzione $.fn.fleXlider si può passare un'oggetto avente i seguenti parametri (in questo esempio sono uguali ai valori di default):
// on document ready:
$(function(){
$('#slider-id').fleXlider({
aspect : 16/9, // aspect-ratio (float)
threshold : 25, // min distance after a swipe movement to move to next/prev slide
allowScroll : true, // allow vertical scroll when touching
arrowClass : 'onhover', // "hide" : don't display prev and next arrows;
// "onhover" : display if mouse over;
// "" : always visible. Can be customized
bulletClass : '', // as arrowClass, fot bullets navigator
autoPlay : false, // start slider automatically
playDuration : 3000, // how long keep a slide
pauseOnHover : true, // pause when mouse over
allowSwipeIframe : false, // slides with inner iframe became touch friendly, but you cannot interact with the iframe content
// false: iframe as it is, no touch enabled;
// true: iframe not clickable, swipe enabled;
// if slide has class "video": allow click only on center of iframe (where play button often is)
cinema : { // custom callbacks for -supported- videos
onstart : function(i){}, // custom callbacks optionally pass the iframe id as parameter
onpause : function(i){},
onend : function(i){}
}
});
//to support youtube videos, call this function after you initialized all sliders.
fleXlider.supportVideo();
});
Per accedere alle API dello slider si richiami l'attributo data dal contenitore:
// get fleXlider object
var myFXSlider = $('#slider-id').data('fleXlider');
/*
editable parameters:
* threshold
* allowScroll
* autoPlay
* playDuration
* pauseOnHover
* cinema
*/
//example: edit threshold and cinema.onstart function
myFXSlider.threshold = 40;
myFXSlider.cinema.onstart = function(iframeID){
$('#'+iframeID).addClass("babau");
};