Slider d'image ou de contenu avec jQuery

| Alen Grakalic | Didier Mouronval |

Cet article est la traduction de : jQuery plugin - Easy Image or Content Slider. Retrouvez toutes les traductions de CSS Globe disponibles sur https://cssglobe.developpez.com.

Ceci est mon premier plugin jQuery. J'ai déjà écrit des scripts jQuery, mais jamais de vrais plugin, car j'avais peur de la complexité pour le faire. Cela c'est en fait révélé beaucoup plus facile que je ne le pensais et j'ai donc créé celui-ci.

Easy Slider (c'est comme ça que je l'ai appelé) permet de faire défiler des images ou du contenu horizontalement ou verticalement suite au clic. Il est configurable avec uniquement du CSS. Il suffit donc d'intégrer le fichier, d'indiquer le contenu et de le mettre en forme avec des CSS. ♪

- Titre : Slider d'image ou de contenu avec jQuery

- Auteurs : Alen Grakalic, Didier Mouronval

- Parution : 26 janvier 2009

- Mise à jour : 8 juin 2009

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2009 Alen Grakalic. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.

Sommaire

- Pour commencer

- Comment cela fonctionne

- Les options

- Démos

- Pourquoi ce script est différent des autres

Pour commencer

Tout d'abord, vous aurez besoin de contenu, celui-ci doit être englobé dans une div contenant une liste non ordonnée. Chaque élément de cette liste est une vue.
Voici un exemple :

<div id="slider">
<ul>
<li>contenu ici...</li>
<li>contenu ici...</li>
<li>contenu ici...</li>
...
</ul>
</div>

Vous pouvez mettre tout ce que vous voulez dans la liste du moment que vous gardez les mêmes dimensions.
À la base, je voulais faire une galerie d'image comme sur la page d'accueil de Templetica mais je l'ai aussi utilisé pour d'autres choses.
Pour activer le script, il faudra télécharger les fichiers, les placer dans un répertoire de votre site (par exemple /js/) et les intégrer à votre page :

<script type="text/javascript" src="/js/jquery.js"></script>
<script type="text/javascript" src="/js/easySlider.js"></script>

Vous n'avez plus qu'à ajouter ces lignes dans votre code JavaScript :

$(document).ready(function(){
$("#slider").easySlider();
});

Cela initialise le script au chargement de la page, avec « #slider » le sélecteur CSS de l'élément (ou des éléments) auquel vous voulez l'appliquer. Vous pouvez aussi l'affecter à plusieurs éléments en utilisant leur nom de classe : $('.list').easySlider();

Ensuite, vous pouvez ajouter des styles à votre convenance. Voici à quoi ressemblent les styles par défaut :

#slider ul, #slider li
{
margin:0;
padding:0;
list-style:none;
}

#slider, #slider li
{
width:500px;
height:200px;
overflow:hidden;
}

span#prevBtn{}

span#nextBtn{}

Pas grand-chose à vrai dire… L'essentiel ici est de conserver les mêmes dimensions entre la zone de contenu et les éléments de la liste. De même, overflow: hidden; est obligatoire. À part cela, vous êtes libres d'utiliser vos propres styles comme vous le souhaitez. Pour vous donner une idée de ce qu'il est possible de faire, allez voir la page d'accueil de Templetica.

Comment cela fonctionne

Le script ajoute automatiquement les boutons « précédent » et « suivant » dans des span avec de faux liens juste après la zone de contenu. Ces span possèdent des id afin de pouvoir leur affecter des styles :

<span id="prevId"><a href="javascript:void(0);">Suivant</a></span>
<span id="nextBtn"><a href="javascript:void(0);">Précédent</a></span>

À chaque clic (boutons précédent ou suivant), le script calcule la position courante et avance d'un cran dans la direction voulue. Ainsi, le slider va d'une vue à l'autre. Lorsqu'on arrive à la fin (dernière vue), le bouton « suivant » s'efface et ne réapparait que lorsque le bouton « précédent » est cliqué. Le fonctionnement est le même dans l'autre sens.

Les options

Les options suivantes sont configurables :

Option

Description

prevId

L'id du bouton « précédent »

prevText

Le texte du bouton « précédent »

nextId

L'id du bouton « suivant »

nextText

Le texte du bouton « suivant »

orientation

'horizontal' ou 'vertical' (horizontal par défaut)

speed

La vitesse de l'animation en ms (800 par défaut)

Oui, vous avez bien lu, vous pouvez aussi faire défiler verticalement !

Les options sont ajoutées en appelant le script :

$(document).ready(function(){
$("#slider").easySlider({
prevText: 'Précédent',
nextText: 'Suivant',
orientation: 'vertical'
});
});

Attention de ne pas mettre de virgule après la dernière option !

Démos

Voici quelques pages de démonstration pour voir le script en action. Ces démos n'ont pas de style particulier.

- Défilement d'images avec options par défaut

- Défilement vertical d'images

- Défilement vertical de texte

Pour voir un exemple avec des styles élaborés, allez sur Templatica.

Pourquoi ce script est différent des autres

Parce qu'il est simple et léger (ce n'est pas qu'un mot !) je crois qu'il est plus facile à utiliser et à configurer. L'apparence est complètement configurable en CSS, donc tous ceux qui ne se sentent pas à l'aise avec le code JavaScript peuvent facilement l'utiliser.