Table of contents
Fonctions de Slick
Son utilisation permet d’afficher une liste d’éléments défilants, en l’occurrence ici une série de photographies.
Par les configurations proposées, il est possible de mettre en place des effets de fondus enchaînes, de sélectionner le nombre d’images visibles et d’appliquer un défilement automatique ou manuel.
Installation et configuration
Une fois le plugin installé comme les autres, la page de configuration est accessible soit par ecrire/?exec=configurer_slick
soit par le menu “Squelettes > Slick Slideshow”, permettant d’ajuster les paramètres suivants :
- activer automatiquement : oui ou non
- Sélécteur jQuery pour Slick : choisir l’élément par une classe ou un id
- Elément à utiliser comme Slide : cibler l’élément HTML qui sera une diapositive, il doit être directement dans l’élément sélectionné précédemment.
- Nombre de slide à afficher : le nombre de diapositives visibles
- Nombre de slide à déplacer : le nombre de diapositives qui se déplacent en même temps
- AutoPlay : lecture automatique ou non
- Vitesse de l’autoplay : le déclenchement après le chargement
- Fade : effet de fondu entre les diapositives
- Vitesse de l’animation : la rapidité de la transition
- Vertical : si non ce sera horizontal
- Lazyload : ne pas charger les images avant de les voir, puis les charger dès qu’on veut les voir (ondemand), ou bien charger déjà les prochaines (avant de les voir, progressive)
- Centrer les éléments : ...
- Animation CSS3 (easing) : effet d’accélération/ralentissement lors des transitions
- Afficher les bulles de contrôle
- Pause au survol
- Pause au survol des bulles de contrôle
- Support du RTL : si oui, on adapte le diaporama à l’environnement de langue, et dont le sens de lecture peut aller de la droite vers la gauche.
- Hauteur automatique : si oui, la hauteur s’adaptera à la hauteur de chaque diapositive. Sinon la plus haute sera la hauteur du diaporama.
- Flèches précédent/suivant : utiliser la navigation précédent/suivant (non par défaut)
Affichage dans les textes
Avec les paramètres par défaut, il suffit d’avoir des images dans son site et d’insérer le diaporama dans un texte avec le modèle suivant :
<slick|>
Dix images du site au hasard seront affichées avec les paramètres optionnels que vous pourrez ajouter :
- largeur :
<slick|largeur=550>
- la largeur en pixels - hauteur :
<slick|hauteur=200>
- la hauteur en pixels - nombre :
<slick|nombre=16>
- le nombre d’images qu’on veut afficher
Exemple : <slick|largeur=650|hauteur=320|nombre=20>
Il ne faut inclure qu’une seule fois le modèle sur la même page, car il contient un identifiant qui doit rester unique (#slick).
Pour les autres paramètres, la configuration générale du plugin les règle. Voir la page “Squelettes > Slick Slideshow”.
Il est possible de personnaliser le modèle en le surchargeant : copiez le fichier du plugin modeles/slick.html
et dans le dossier squelettes/modeles
en le renommant comme vous voulez. Vous pourrez le personnaliser et l’appeler dans vos textes de la même manière que l’autre <monmodele|>
Affichage dans les textes avec le modèle <articleXX|slick>
Portfolio des documents d’un article.
Insertion du modèle <articleXX|slick>
où XX est le numéro de l’article.
Ce modèle n’utilise pas la configuration générale du plugin, mais les paramètres suivants :
- id-carousel=monid - id unique du carousel, seulement s’il y en a plusieurs sur la même page.
- docs=1,2,3 : sélectionne individuellement les documents
- infinite=true (false par défaut) - revient à la diapo 1 après la dernière
- speed=300 - vitesse de transition
- slidesToShow=1 - nb images à montrer à la fois
- slidesToScroll=1 - nb images à faire défiler en même temps
- centerMode=true (false par défaut) - centrer sur l’image (si slidesToShow > 1)
- centerPadding=40px - espace latéraux (si centerMode = true)
- dots=true (false par défaut) - afficher les points de navigation
- variableWidth=true (false par défaut) - diapositives de largeurs différentes
- adaptiveHeight=true (false par défaut) - adapter la hauteur du diaporama à la hauteur de la diapositive
- autoplay=true (false par défaut) - démarrage automatique
- autoplaySpeed=300 - temps d’exposition d’une diapositive en mode démarrage automatique
- fade=true (false par défaut) - effet de transition fondu
- couleurNav=red, ou black, ou green... ou un code héxadécimal de couleur #6509a3 - couleur des navigation (flèches et points)
- agrandir=oui : pour avoir un lien sur les images et les agrandir (Mediabox activé)
- afftitre=oui : pour afficher le titre de l’image (défaut non)
- affdesc=oui : pour afficher le descriptif de l’image (défaut non)
- largeur=1000 largeur de l’image en px dans le diaporama (défaut 960)
Exemple :
<article3|slick|agrandir=oui|slidesToShow=3|slidesToScroll=3|dots=true>
Discussions par date d’activité
15 discussions
Bonjour et merci pour ce portage qui fonctionne très bien dans un article...
Cependant, j’aimerai afficher un slider sur ma page d’accueil qui contiendrait des photos ayant le même mot-clé et je bloque... J’ai essayé un inclure du modèle “slick” auquel j’ai ajouté le critère “id_mot=1”, sans succès :-(
Est-ce possible ? Qu’est-ce que j’ai raté ?
Merci de vos lumières !
J’ai résolu mon problème en dupliquant et renomant le modèle article_slick.html en mot_slick.html avec un
{id_mot?}
en paramètre.Un appel dans le champ texte avec
<motX|slick|ect...>
et c’est bon !Des fois que...
Reply to this message
bonjour
tout d’abord merci.
Ensuite j’aimerais pouvoir classer mes “diapo” par rang_lien, mais je ne vois pas comment faire.
Est-ce possible? Sinon comment faire pour choisir l’ordre des images dans le diaporama?
Merci encore
bonne soirée
Christophe
Reply to this message
Bonjour,
J’ai fait évoluer le modèle
<articleXX|slick>
pour permettre d’afficher titres et descriptifs des images.Il faudrait donc rajouter à la doc les paramètres :
* |afftitre=oui
* |affdesc=oui
Voir le commit : https://zone.spip.org/trac/spip-zone/changeset/115778
Ah ah, les grands esprits se rencontrent, j’étais justement en train de décortiquer le modèle
<article>
.J’ai ajouté à la doc...
Reply to this message
Bonjour;
J’aimerais, pour un diaporama inséré dans un article, pouvoir choisir l’ordre d’affichage des diapos.
Le mieux serais de pouvoir tenir compte de l’ordre des documents attachés, ordre défini par le plugin ordoc (qui est maintenant nativement intégré à Spip).
possible syntaxe :
au lieu de mettre:
on mettrait:
donc, sans numéro d’article, signifierait diapo des documents attaché au présent article et dans l’ordre de ces documents.
Merci d’avance,
Cordialement,
Hervé
Effectivement ce serai pas mal.
Bonne chance !
Reply to this message
Bonjour j’aimerais pouvoir faire afficher les vignettes des photos en dessous comme le Slider Syncing
Je ne sais pas où mettre le code
$(’.slider-for’).slick(
slidesToShow: 1,
slidesToScroll: 1,
arrows: false,
fade: true,
asNavFor: ’.slider-nav’
);
$(’.slider-nav’).slick(
slidesToShow: 3,
slidesToScroll: 1,
asNavFor: ’.slider-for’,
dots: true,
centerMode: true,
focusOnSelect: true
);
Merci
Bonjour RP,
Pour commencer, il faut désactiver l’insertion automatique du code de Slick. C’est une option dans la configuration du plugin. Le plugin se contentera alors de charger le JavaScript et le CSS.
Pour le reste, c’est alors à toi de gérer correctement l’appel à Slick au bon endroit (modèles, squelettes...).
Reply to this message
Bonjour et Bravo pour ce plugin !
J’ai grâce a lui enfin pu faire une galerie sur mon site avec un lien sur les images pour les agrandir et navigation image par image. Cela ne fonctionnait pas pour moi avec la Mediabox...
Seulement voilà : mes images sont attachées à un produit (du plugin Produit, qui ajoute des produits comme objet éditorial du site). Je ne peux donc me contenter du modèle <articleXX|slick>, il me faudrait plutôt pouvoir écrire <produitXX|slick>...
Est-ce qu’il me serait possible de toucher au code du plugin pour que cela puisse se faire ? J’ai trouvé dans les slick > modeles > article_slick.html :
J’ai tenté de changer le critère id_article? par id_produit? mais cela ne suffit pas...
Alors si vous avez une idée, je suis preneuse !
Merci et à bientôt !
Bonjour Lucie,
Tu me sembles sur la bonne piste.
Dans le cas présent, je dupliquerai le modèles des articles pour le surcharger dans le squelette.
Ensuite, je remplacerai id_article par id_produit :
Je n’ai pas testé, mais si tu places ce modèle dans un produit, cela devrait fonctionner :).
Merci pour ta réponse Phenix.
Question bête (désolé!) que veux-tu dire par placer ce modèle dans un produit ?
Encore merci.
J’ai essayé de mettre la boucle citée dans le squelette et de rajouter le modèle <produitXX|slick> dans mon produit sur l’espace privé mais cela n’a pas fonctionné...
Bonjour Lucie,
Je pense que tu peux régler ton problème en lisant la documentation des modèles de SPIP :
https://www.spip.net/fr_article3454.html
Merci beaucoup Phenix, je viens de regarder le lien. Je pense que cela va résoudre mon problème. Je m’y penche dès que j’ai un peu de temps...
Reply to this message
Pour info, il est possible d’améliorer la navigation dans le carrousel sur écran tactile en supprimant le scrolling par touch event du reste de la page à l’intérieur du DIV id=“...” contenant la galerie Slick. Ceci peut se faire simplement par ajout d’un minuscule javascript sur la page contenant le carrousel et qui ne s’applique qu’au DIV contenant SLICK.
<script type="text/javascript">
/*Prevent scrolling within Slick*/
function prevent(event){event.preventDefault();}
document.getElementById("#ID_ARTICLE").addEventListener("touchmove", prevent)
var haltEvent = function(event) {
event.preventDefault();
event.stopPropagation();
};
</script>
pour le cas où le carrousel est dans une boucle ARTICLE. La balise #ID_ARTICLE n’est présente qu’à titre d’exemple, elle sert uniquement à donner une id unique au carrousel au cas où il y aurait plusieurs articles avec carrousel sur la même page.
Il m’a aussi semblé utile d’augmenter sensiblement le seuil de déclenchement de balayage du carrousel. Ceci se règle avec le paramètre touchThreshold. Voir documentation sur le site de Slick ( voir Settings) .Par défaut, il est égale à 5, je l’ai fixé à 20 (plus sensible)!
<script type="text/javascript">
jQuery(function($){$("[#(#GET{id-carousel,demo})]").slick({[touchThreshold:(#ENV{touchthreshold,20})]});
</script>
Tout ceci est en place sur mon blog BD ;)
Bonjour,
merci pour les astuces, il faut peut-être préciser qu’un id ne doit pas commencer par un chiffre, donc faire peut-être “id#ID_ARTICLE”, ou sinon pour l’exemple “monid” ferait bien l’affaire...
Reply to this message
Bonjour,
une question simple: pourquoi le carrousel ne réagit pas aux touch events? En regardant sous le capot, slick.js est équipe pour réagir aux écrans tactiles. In fine -en tout cas chez moi- pas de défilement en balayant avec le doigt... Faut-il implémenter différemment les paramètres par défaut?
Merci d’avance,
spipement,
Bonjour,
Ce n’est pas normal, je vais investiguer dès que possible.
Bonjour,
ummhhh... “chez moi ça marche” ©™® :)
Pour avoir un retour, il faudrait donner plus d’infos, ne serait-ce qu’une URL... Sans ça, on parle un peu dans le vent.
Bonjour,
merci pour le retour.
Le site devait être opérationnel ce jour-même. C’est un site de mise en ligne de BD. J’ai du faire appel au plugin owl. J’ai pourtant une petite préférence pour le plugin slick. Je vais donc créer un autre dossier racine sur le serveur avec une URL alternative du site mais qui fait appel au plugin slick.
Pour info j’ai repris le modele article_slick.html pour l’adapter à mes besoins, et j’ai glissé cette copie dans mon dossier modele en le renommant. Est-ce la source de mes ennuis? Pourtant mon carrousel Slick fonctionne très bien...
Je reviens avec les URLs
Voici les URLs (site de mise en ligne de BD):
Les deux plugins sont activés. Les deux sont exploités par l’intermédiaire d’un modèle perso de mon dossier squelettes/modeles.
J’avoue de ne pas encore avoir eu le temps d’investiguer en profondeur, mais j’aimerais passer par Slick pour d’autres galeries.
Hello,
Je confirme, le touch ne fonctionne pas sur mon Galaxy S5 + Firefox.
Cependant les touch event sont bien chargés (voir mon screenshot).
Le problème ne vient pas de slick, mais du positionnement des “dots”, le
<ul>
recouvre entièrement les slides en passant “au dessus”. Cela empêche les touch de fonctionner.BON SANG MAIS C’EST BIEN SÛR! Bravo Phenix, et grand merci! Je n’avais pas cette piste en tête.
Coups de poings sur les points par z-index et... Miracle! Tout se laisse de nouveau dragger par le doigt ou la souris. Cool. Comme je ne veux pas les dots en surimpression, pas de soucis...
Slick a l’avantage de mettre chaque image dans le voisinage des images qui la suivent et la précède, quelque soit la taille d’écran. Owl isole les images à partir d’une certaine taille d’écran.
Le désavantage de la solution Slick, c’est que les images ne sont pas responsives comme chez Owl.
Y-a-t-il moyen de rendre les images aussi responsives que chez Owl ???
De rien, j’ai trouvé rapidement :)
Je ne vois pas bien de quoi tu parles au niveau des images.
Slick a pas mal de paramètre, peut être que tu peux tenter avec mobileFirst:true
Ce n’est pas prévu par défaut il faudra bricoler pour l’ajouter.
Ou bien le prévoir dans le plugin :)
Salut Phenix,
c’est vrai, je me suis mal exprimé...
Dans mes carrousels, que ce soit par Owl ou Slick, le nombre d’item affiché est égal à 1. Je ne montre qu’une seule image.
Chez Owl, il est difficile de faire apparaître les images voisines, parce que ca grignote beaucoup sur l’item affiché sur les grands écrans (une histoire de stagepadding pas très pratique à mon goût). La solution Slick est plus spipienne dans un sens.
Le paramètre mobileFirst ne semble pas fonctionné chez moi. En tout cas, je n’ai pas vu de différence...
A la base, les images Slick sont responsives????
Les liens sus-mentionnés sont devenus caduques, je fais appel aux deux galeries, Slick pour les écrans larges, et Owl pour les plus petits écrans. Il y a un bouton au-dessus de la galerie pour basculer entre les deux galeries. En attendant mieux...
Le blog de Néki
Au moins, ça permet aux spipiens de comparer le comportement des galeries avec un seul item affiché...
Hello,
Je vois de quoi tu parles maintenant, mais c’est un souci CSS qu’il faut régler pour le coup, en creusant dans Slick pour gérer la taille des images autrement :)
La solution ne semble pas passer par la CSS. Parce qu’il faut que le DIV qui contient l’image recalcule sa largeur width en fonction de son contexte. Je m’explique.
Mes images de Slick sont bien responsives, mais inclus dans un DIV avec les attributs
qui ne se redimensionne pas en largeur (width) si le div parent devient plus étroit. Plus précisément, le
qui contient l’image n’a pas d’ attribut de style du genre:
(par exemple) qui se recalcule à la volée quand son contenant s’élargit ou devient plus étroit. C’est bien le cas sur le site de Slick. Pas chez moi. :-(
Donc j’imagine que ca passe par un script. Y a que moi qui bugge?
Du coup, le souci vient de ton site.
Je testerai en manipulant les options de slick pour voir s’il y en a pas une qui provoque ce problème :)
J’ai aussi vérifié de mon côté, c’est effectivement le modèle de mon squelette qui coince; celui du plugin fonctionne très bien.
En effet, c’est le paramètre
variableWidth
qui avec la valeurvariableWidth:true
peut poser problème dans certains contextes (mentionnés précédemment).Pour résoudre le problème, je fais appel au paramètre responsive pour changer le paramètre en fonction de la largeur disponible. Par exemple:
Reply to this message
Bonjour,
En activant « Compactage des scripts et CSS » de SPIP, je m’aperçois que slick.js ne fait pas partie des scripts “compacté”, alors que les CSS le sont bien.
Je loupe quelque chose ou pas ?
Merci,
françois
Tu ne loupes rien, c’est voulut.
Le compresseur de SPIP compresse mal le JS de Slick, du coup ce n’est pas compatible.
J’ai exclu Slick de la compression, le temps que le compresseur soit patcher.
Merci merci pour le retour !
Au passage, il serait peut-être intéressant de faire charger la version minimisée : slick.min.js.
C’est fait avec la version 1.2.5 et elle passe par le compresseur pour l’avoir dans le js compacté et éviter une requête :
https://zone.spip.org/trac/spip-zone/changeset/108177
Merci, parfait !!
Reply to this message
Bonjour,
J’aimerais insérer un diaporama slick dans un article, mais en maitrisant les photos qui sont affichées.
avec 3 options possibles:
<slick|article>
<slick|article225>
<slick|doc=203,204,355,150>
Merci d’avance,
Cordialement,
Hervé
Bonjour,
j’ai aussi ce besoin, je viens d’ajouter un modèle qui rend ce service, il faut attendre la version 1.2.6 du plugin, sinon utiliser le modèle qui est là : https://zone.spip.org/trac/spip-zone/browser/_plugins_/slick/trunk/modeles/article_slick.html
C’est à considérer comme un exemple qu’on peut surcharger et modifier à loisir...
Bon SPIP !
Reply to this message
Ajouter un commentaire
Follow the comments:
|
