jQuery simpleSlider

12/2021 par Gildas P. - Playing with pixels !
Version 1.0

Une slider Javascript simple et efficace

Installation

Structure HTML imposée :


<!-- le slider qu'on va cibler, classe ou identifiant libre -->
<div class="slider">
	
   <!-- le bandeau qu'on fait défiler -->
   <ul>
      <li>...</li><!-- un slide -->
      <li>...</li>
      <li>...</li>
   </ul>
</div>		
		

Côté CSS

Utilisation basique

  • Les images s'affichent à leur taille réelle
  • Si les images sont trop grandes elles sont coupées
  • La hauteur du slider s'ajuste au contenu des slides

Click me !

  • On peut même ajouter du texte en plus d'une image...

  • Ou n'importe quel contenu html.

$('.slider').simpleSlider();

Images élastiques (en largeur)

  • On pourrait le faire en CSS (width:100% sur les images)
    mais c'est déjà prévu en Javascript !
  • La hauteur du slider s'ajuste toujours au contenu des slides

Click me !

  • On peut même ajouter du texte en plus d'une image...

  • Ou n'importe quel contenu html.

$('.slider').simpleSlider({
   stretch: 'width'
});

Format fixe et images élastiques

  • En CSS on donne une largeur ET une hauteur au slider
  • simpleSlider va s'occuper d'étirer le contenu et d'ajuster les images (qui sont coupées si besoin)
.slider { width:300px; height:420px; }
$('.slider').simpleSlider({
   stretch: 'cover'
});

simpleSlider utilise alors la propriété CSS object-fit:cover - ici un magnifique tuto sur le sujet

Format fixe et images élastiques 2

  • Même principe, autre mode d'ajustement des images
  • Ici on affiche une marge si besoin, et on ne coupe jamais une image
.slider { width:300px; height:420px; }
$('.slider').simpleSlider({
   stretch: 'contain'
});

simpleSlider utilise alors la propriété CSS object-fit:contain - ici un magnifique tuto sur le sujet

Durée d'animation et easing

Vous pouvez changer :

$('.slider').simpleSlider({
   duration: 1500,
   easing: 'easeInOutBack'
});

Par défaut l'animation dure 600 ms, avec le easing 'ease'.

Ajouter des éléments d'interface

  • Placez vos éléments d'interface en HTML + CSS (textes ou images)
  • Déclarez les boutons "suivant" et/ou "précédent" en Javascript pour les rendre cliquables
Suivant
Précédent
<div class="slider">
   <ul>
      ...
   </ul>
   <div class="btn-next">Suivant</div>
   <div class="btn-prev">Précédent</div>
</div>
$('.slider').simpleSlider({
   next: '.btn-next',
   prev: '.btn-prev'
});
/* magouille css pour placer les boutons... */
.slider { position:relative; }
.slider .btn-prev, .slider .btn-next {
   position: absolute; top:15px; 
}
.slider .btn-prev { left:15px; }
.slider .btn-next { right:15px; }

Lecture automatique

$('.slider').simpleSlider({
   speed: 1500
});

En lecture automatique il n'y a plus d'interaction utilisateur possible, ça joue tout seul.

Pourquoi cette librairie ?

Pour mettre en place des sliders facilement, parce que je n'arrive pas à trouver ça en ligne :

Et aussi parce que ça m'amuse, et que je vais peut-être enfin réutiliser un slider au lieu d'en fabriquer un nouveau pour chaque projet :)