Présentation
L'objectif de Slider Kit est de simplifier l'utilisation d'animations jQuery frontoffice basiques de type 'slider' (défilement d'actualités, diaporama, galeries photos, carrousels, menu avec onglets, etc.) en utilisant un unique plugin. La différence principale entre les animations résidant dans le CSS.
- Version: 1.4
- Page du projet: sur Google Code
- Licence: GNU General Public License
Caractéristiques
- Plusieurs façons d'agencer les éléments du slider.
- Différentes façons de naviguer : boutons, molette de souris, clic sur image, clavier (beta).
- Orientation verticale ou horizontale du carrousel.
- Orientation verticale ou horizontale du contenu (photo ou texte).
- Défilement automatique / Défilement en boucle.
- 2 transitions : fondu et défilement.
- Possibilité d'ajouter un effet de 'easing' sur les défilements.
- Slider Kit génère un minimum de CSS 'inline'. L'habillage se fait enièrement par la feuille de style.
- Petit poids : < 8 Ko (minifié).
Démos
- Défilement de photos
- Galeries photo
- Défilement d'actualités
- Carrousels
- Diaporamas
- Menus avec onglets
- Menus
Compatibilité
- Internet Explorer 9: oui
- Internet Explorer 8: oui
- Internet Explorer 7: oui
- Internet Explorer 6: oui
- Firefox: oui (testé sur v3.6.1 & v4)
- Chrome: oui (testé sur v9.0.597.107)
- Safari: oui (testé sur v5.0.2)
- Opera: oui (testé sur v11.01)
Versions
Version 1.4
- Ajout d'un exemple de galerie photos
- Corrections mineures sur le code javascript
Version 1.3
- Ajouté : carrousel avec défilement continu
Version 1.2
- Transition de type "sliding" améliorée
- Démo d'un menu par onglets avec défilement du contenu
- Ajout de la version FR
Version 1.1
- Corrections sur les pages de démos
- Ajout de la page de démo "Menus"
Documentation
Comme beaucoup de plugins jQuery, Slider Kit est un mélange subtil (et indissociable) de HTML, CSS et jQuery. Le code jQuery en lui-même ne se préoccupe ni du design ni du CSS (hormis le calcul nécessaire de certaines tailles). Pour obtenir le design souhaité, il vous faudra donc travailler sur une feuille de style CSS personnalisée.
Mais avant tout, étudions rapidement le code HTML.
HTML
Eléments HTML
Conteneur principal
Classe CSS : [cssprefix].
Ce conteneur englobe tous les autres. Sauf exception, sa hauteur et sa largeur doivent être spécifiées dans le CSS (car les conteneurs enfants ont une position absolue).
Panneau de contenu
Classe CSS : [cssprefix]-panel.
Placer dans cet élément le contenu à animer. Cela peut être n'importe quoi : images, texte, actus, etc.
Bouton précédent
Classe CSS : [cssprefix]-go-btn [cssprefix]-go-prev.
Ce bouton va à l'élement précédent. Il peut être placé n'importe où dans le conteneur principal.
Bouton suivant
Classe CSS : [cssprefix]-go-btn [cssprefix]-go-next.
Ce bouton va à l'élement suivant. Il peut être placé n'importe où dans le conteneur principal.
Commentaire/Boite texte
Classe CSS : [cssprefix]-panel-textbox.
Cet élément est surtout utilisé comme commentaire sur les photos. Il peut être placé n'importe où au-dessus du panneau de contenu.
Conteneur de navigation / Carrousel
Classe CSS : [cssprefix]-nav.
Ce bloc contient les vignettes pour la navigation. Le contenu des vignettes peut être du texte ou des images.
Bouton de ligne précédente
Classe CSS : [cssprefix]-nav-btn [cssprefix]-nav-prev.
Ce bouton fait défiler le carrousel vers la droite. Il doit être placé dans le conteneur de navigation.
Bouton de ligne suivante
Classe CSS : [cssprefix]-nav-btn [cssprefix]-nav-next.
Ce bouton fait défiler le carrousel vers la gauche. Il doit être placé dans le conteneur de navigation.
[cssprefix] la valeur par défaut du préfixe CSS est "sliderkit". Vous pouvez la remplacer par ce que vous voulez.
Le code HTML
Voici une stucture HTML représentative à utiliser avec Slider Kit:
<div class="sliderkit">
<!-- Conteneur de navigation -->
<div class="sliderkit-nav">
<!-- Conteneur "lucarne" -->
<div class="sliderkit-nav-clip">
<ul>
<li><a href="#" rel="nofollow" title="[link title]">~content</a></li>
<li><a href="#" rel="nofollow" title="[link title]">~content</a></li>
<li><a href="#" rel="nofollow" title="[link title]">~content</a></li>
<li><a href="#" rel="nofollow" title="[link title]">~content</a></li>
</ul>
</div>
<!-- Boutons de ligne -->
<div class="sliderkit-nav-btn sliderkit-nav-prev"><a rel="nofollow" href="#" title="Previous line"><span>Previous</span></a></div>
<div class="sliderkit-nav-btn sliderkit-nav-next"><a rel="nofollow" href="#" title="Next line"><span>Next</span></a></div>
</div><!-- // fin de Conteneur de navigation -->
<!-- Conteneur de panneaux -->
<div class="sliderkit-panels">
<!-- Boutons 'Go' -->
<div class="sliderkit-go-btn sliderkit-go-prev"><a rel="nofollow" href="#" title="Previous"><span>Previous</span></a></div>
<div class="sliderkit-go-btn sliderkit-go-next"><a rel="nofollow" href="#" title="Next"><span>Next</span></a></div>
<!-- Panneaux de contenu -->
<div class="sliderkit-panel">
~content
</div>
<div class="sliderkit-panel">
~content
</div>
<div class="sliderkit-panel">
~content
</div>
</div><!-- // fin de Conteneur de panneaux -->
</div><!-- // fin de Conteneur principal -->
- Le code HTML est flexible : vous pouvez utiliser seulement the carrousel, ou seulement les panneaux de contenu. Les boutons et les commentaires sont optionnels.
- Les boutons 'Go' (sliderkit-go-btn) peuvent être placés n'importe où dans le conteneur principal.
CSS
Styles fondamentaux
La feuille de style principale de Slider Kit est sliderkit-core.css.
Elle regroupe les styles nécessaires au fonctionnement du plugin. Ces styles peuvent biensûr être copiés, déplacés et adaptés à votre convenance.
Habillages personnalisés
En complément de la feuille de styles principale, vous devez écrire une CSS personnalisée ("skin") afin d'obtenir un design sur mesure.
Pour vous aider dans cette tâche (parfois difficile !), j'ai fabriqué plusieurs exemples de skins CSS (consulter la section "Démos" plus haut).
La feuille de style des démos est sliderkit-demos.css. N'hésitez pas à parcourir ce fichier !
Compatibilité
Par souci de compatibilité inter-navigateurs, j'ai ajouté 3 fichiers CSS pour gérer les exceptions d'Internet Explorer de Microsoft (essentiellement pour gérer les effets d'opacité et de transparence) :
- sliderkit-demos-ie6.css.
- sliderkit-demos-ie7.css.
- sliderkit-demos-ie8.css.
Conseils CSS
- La hauteur et la largeur du conteneur principal doivent être spécifiées dans votre feuille de style (sauf dans le cas où vous utilisez Slider Kit pour fabriquer un menu par onglets).
- Sur la balise <li> du carrousel, les valeurs des marges internes et externes doivent être en pixels (px).
Dans la partie <head> de la page HTML :
<link rel="stylesheet" type="text/css" href="../lib/css/sliderkit-core.css" media="screen, projection" />
<link rel="stylesheet" type="text/css" href="../lib/css/sliderkit-demos.css" media="screen, projection" />
<!-- Compatibilité -->
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="../lib/css/sliderkit-demos-ie6.css" />
<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" type="text/css" href="../lib/css/sliderkit-demos-ie7.css" />
<![endif]-->
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="../lib/css/sliderkit-demos-ie8.css" />
<![endif]-->
Javascript
Le fichier javascript principal est actuellement jquery.sliderkit.1.4.min.js (packed).
En option, vous pouvez inclure les plugins suivants:
- jquery.easing.1.3.min.js, pour les effects de "easing" sur les transitions.
Plus d'info sur le site : easing plugin homepage - jquery.mousewheel.min.js, pour la navigation avec la molette de souris.
Plus d'info sur le site : Brandon Aaron website.
Dans la partie <head> de la page HTML :
<script type="text/javascript" src="../lib/js/jquery-1.3.min.js"></script>
<!-- Slider Kit -->
<script type="text/javascript" src="../lib/js/jquery.sliderkit.1.4.min.js"></script>
<!-- Add-ons -->
<script type="text/javascript" src="../lib/js/jquery.easing.1.3.min.js"></script>
<script type="text/javascript" src="../lib/js/jquery.mousewheel.min.js"></script>
<!-- Lancement de Slider Kit -->
<script type="text/javascript">
jQuery(window).load(function(){
jQuery(".anytagselector").sliderkit();
});
</script>
Paramètres personnalisés du plugin:
<script type="text/javascript">
jQuery(window).load(function(){
jQuery(".anytagselector").sliderkit({
shownavitems:5,
auto:false
});
});
</script>
Consultez la liste 'Options' ci-dessous.
Options
cssprefix
(string) valeur par défaut : "sliderkit". Le préfixe à utiliser sur les noms de classe CSS.
start
(int) valeur par défaut : 0. Définit sur quel élément commencer (le premier étant 0).
auto
(boolean) valeur par défaut : true. Active le défilement automatique.
autospeed
(int) valeur par défaut : 4000. Vitesse du défilement automatique (ms).
mousewheel
(boolean) valeur par défaut : false. Active la navigation avec la molette de souris.
keyboard
(boolean) valeur par défaut : false. Active la navigation au clavier. Très basique pour le moment (flèche gauche/droite).
panelclick
(boolean) valeur par défaut : false. Active la navigation au clic sur les panneaux de contenu.
circular
(boolean) valeur par défaut : false. Active le défilement en boucle (le carrousel revient tout seul en fin ou début de lecture).
shownavitems
(int) valeur par défaut : 5. Définit combien de vignettes seront visibles dans la "lucarne" de navigation.
navitemshover
(boolean) valeur par défaut : false. Si vrai, l'animation des panneaux de contenu sera déclenchée au survol des vignettes (plutôt qu'au clic).
navclipcenter
(boolean) valeur par défaut : false. Si vrai, le plugin fera en sorte de centrer la "lucarne" de navigation dans le conteneur de navigation.
navfx
(string) valeur par défaut : "sliding". Définit le type d'animation pour le défilement du carrousel. Valeurs possibles : "sliding", "none".
scroll
(int) valeur par défaut : égale à la valeur de l'option 'shownavitems'. Définit combien de vignettes seront déplacées lors du défilement du carrousel (en cliquant sur les boutons de ligne). Ce nombre doit être inférieur ou égal à la valeur de l'option 'shownavitems'.
scrollspeed
(int) valeur par défaut : 600. Vitesse du défilement du carrousel (ms).
scrolleasing
(string) valeur par défaut : "swing".
Ajoute un effet de 'easing' sur le mouvement du carrousel.
Les fonctions de 'easing' par défaut de jQuery sont "swing" et "linear". D'autres fonctions sont disponibles en utilisant le plugin jQuery Easing : http://gsgd.co.uk/sandbox/jquery/easing/.
panelfx
(string) valeur par défaut : "fading". Définit le type de transition lors de l'animation des panneaux de contenu. Valeurs possibles : "fading", "sliding", "none".
panelfxspeed
(int) valeur par défaut : 700. Vitesse de la transition entre les panneaux de contenu (ms).
panelfxeasing
(string) valeur par défaut : "swing".
Ajoute un effet de 'easing' sur la transition entre les panneaux de contenu.
Effets disponibles : .
Les fonctions de 'easing' par défaut de jQuery sont "swing" et "linear". D'autres fonctions sont disponibles en utilisant le plugin jQuery Easing : http://gsgd.co.uk/sandbox/jquery/easing/.
panelfxbefore
(function) valeur par défaut : function(){}. Fonction appelée avant l'animation des panneaux de contenu.
panelfxafter
(function) valeur par défaut : function(){}. Fonction appelée après l'animation des panneaux de contenu.
panelbtnshover
(boolean) valeur par défaut : false. Si vrai, les boutons 'Go' apparaitront au survol de la souris sur les panneaux de contenu.
verticalnav
(boolean) valeur par défaut : false. Carrousel vertical.
verticalslide
(boolean) valeur par défaut : false. Défilement vertical des panneaux de contenu (avec l'option "panelfx" égale à "sliding").
tabs
(boolean) valeur par défaut : false. Nécessaire pour construire un menu par onglets.
freeheight
(boolean) valeur par défaut : false. Dans un menu par onglets, permet de libérer la hauteur des panneaux de contenu (ils sont placés en position relative). Dans ce cas l'option "panelfx" ne peut pas prendre la valeur "sliding").
fastchange
(boolean) valeur par défaut : true. Permet à l'utilisateur de faire défiler rapidement les éléments du slider. Si cette option est définit en 'false', l'utilisateur devra attendre la fin d'une transition pour pouvoir lancer la suivante.
debug
(boolean) valeur par défaut : false. En mode 'debug', le script s'arrête sur les erreurs d'exécution et renvoie un code d'erreur. Voir la rubrique Dépannage.
Extending Slider Kit
Fetching the Slider Kit instance
A way of extending Slider Kit is to fetch the instance from anywhere on your page.
var mySliderkit = $(".anyclassorid").data("sliderkit"); // 'mySliderkit' is now a sliderkit instance
$('#play').click(function() {
mySliderkit.autoScrollStart(); // will start slideshow when the element #play is clicked
});
API Methods
autoScrollStart()
Starts the auto scrolling.
autoScrollStop()
Stops the auto scrolling.
playBtnStart()
Starts the auto scrolling and changes the Play bouton CSS class.
playBtnPause()
Stops the auto scrolling and changes the Play bouton CSS class.
navPrev()
Scroll the nav to the previous line.
navNext()
Scroll the nav to the next line.
stepBackward()
Displays the previous item in line, or the last if you are at the first item.
stepForward()
Displays the previous item in line, or the last if you are at the first item.
changeWithId( index )
Switches item using the specify index.
selectThumbnail( index )
Highlight item using the specify index.
Dépannage
Erreurs fréquentes
Si vous rencontrez des difficultés en utilisant le plugin, commencez par les vérifications basiques :
- Les valeurs hauteur et largeur du conteneur principal doivent être spécifiées dans le CSS (la hauteur pouvant être nulle si l'option "freeheight" est activée).
- Les noms de classes CSS sur les balises HTML doivent être respectées (voir la rubrique Eléments HTML).
- Si vous travaillez sur une gallerie (photo ou autre), le nombre de panneaux de contenu doit être égal au nombre de vignettes du carrousel.
- Si vous utilisez des sliders imbriqués les uns dans les autres, leurs préfixes CSS doivent être différents.
- Globalement, la plupart des erreurs proviennent du CSS. Dans le doute, la feuille de style des pages de démos contient peut-être une solution.
Mode déboggage
Pour vous aider à trouver ce qui cloche dans votre installation de Slider Kit,vous pouvez activer le mode déboggage :
debug:true
Le script s'arrêtera sur les erreurs d'exécution en renvoyant un code d'erreur :
- error code 01: (HTML issue) Le script ne trouve ni carrousel ni panneaux de contenu dans le code HTML.
- error code 02: (CSS issue) Les valeurs hauteur et largeur du conteneur principal manquent dans le CSS.
- error code 03: (HTML issue) Si vous travaillez sur une gallerie photo, le nombre de panneaux de contenu doit être égal au nombre de vignettes.
- error code 04: (Js issue) Les effets de 'easing' sur les panneaux de contenu ne sont possibles qu'avec des transitions de type "sliding".
Signaler une anomalie
Si vous trouvez une erreur en utilisant Slider Kit, merci de la signaler.
Remerciements
Lors du développement de Slider Kit, d'excellents travaux jQuery m'ont aidé (et inspiré), dont :
jCarousel, jCarousel Lite, Galleria, Gallery view, Contentflow, Nivo Slider, jQuery Cycle.