Le plugin cycle vous offre la possibilité de contrôler le défilement des slides en définissant des boutons précédent / suivant. Il suffit pour cela d'utiliser les paramètres next et prev pour définir les sélecteurs CSS qui correspondent à vos boutons. Voici quelques exemples :
Cycle - Boutons Précédent / SuivantPas de défilement auto (timeout=0)
|
Cycle - Plusieurs Boutons Préc./Suiv.
|
<div id="cycle-1" class="cycle"> <img src="images/photo_iles_01.jpg" /> <img src="images/photo_iles_02.jpg" /> <img src="images/photo_iles_03.jpg" /> <img src="images/photo_iles_04.jpg" /> </div> <div><a id="prev" href="#"><< Préc.</a> | <a id="next" href="#">Suiv. >></a></div>
<div><a class="prev" href="#"><< Préc.</a> | <a class="next" href="#">Suiv. >></a></div> <div id="cycle-2" class="cycle"> <img src="images/photo_iles_01.jpg" /> <img src="images/photo_iles_02.jpg" /> <img src="images/photo_iles_03.jpg" /> <img src="images/photo_iles_04.jpg" /> </div> <div><a class="prev" href="#"><< Préc.</a> | <a class="next" href="#">Suiv. >></a></div>
Cycle - Clic pour suivant
|
Le plugin cyle vous offre également la possibilité d'exécuter un traitement personnalisé lors du clic sur un bouton préc./suiv. Ce traitement sera exécuté juste avant le lancement de l'animation. Pour cela, il suffit d'utiliser la paramètre prevNextClick pour définir la fonction qui contient votre traitement.
Cycle - Boutons Préc./Suiv et callback
|
Dans exemple, nous avons utilisé le paramètre prevNextClick pour redéfinir dynamiquement les effets de transitions de notre cycle en fonction du numéro de slide (s'il est pair ou impair) et en fonction du bouton d'activation du slide (précédent ou suivant). |
$('#cycle-4').cycle({
timeout: 0,
next: '#nextCall',
prev: '#prevCall',
prevNextClick: traitement
});
function traitement(isNext, zeroBasedSlideIndex, slideElement){
// l'objet this représente ici les options de votre cycle
// par exemple, il est donc possible de changer dynamiquement l'effet de votre cycle
if(zeroBasedSlideIndex%2){
this.fx=[isNext ? 'turnLeft' : 'turnDown'];
} else {
this.fx=[isNext ? 'turnUp' : 'turnRight'];
}
}
Pour ajouter des boutons de paginations, il suffit de définir au niveau du paramètre pager le sélecteur CSS de l'élément qui va contenir vos liens de paginations.
Cycle - PaginationPas de défilement auto (timeout=0)
|
|
<div id="cycle-5" class="cycle"> <img src="images/photo_iles_01.jpg" /> <img src="images/photo_iles_02.jpg" /> <img src="images/photo_iles_03.jpg" /> <img src="images/photo_iles_04.jpg" /> </div> <div id="nav"></div>
Le plugin cycle vous offre la possibilité de construire vos propres éléments de pagination grâce au paramètre pagerAnchorBuilder.
$('#cycle-6').cycle({
fx: 'fade',
timeout: 0,
pager: '#navPersoDyn',
// fonction qui crée dynamiquement un lien de pagination pour chaque slide
pagerAnchorBuilder: function(idx, slide) {
return '<li><a href="#"><img src="' + slide.src + '" width="50px" height="50px" /></a></li>';
}
});
<ul id="navPersoDyn"></ul> <div id="cycle-6" class="cycle"> <img src="images/photo_iles_01.jpg" /> <img src="images/photo_iles_02.jpg" /> <img src="images/photo_iles_03.jpg" /> </div>
#navPersoDyn { width: 210px; margin: 5px; padding:0 }
#navPersoDyn li { width: 50px; float: left; margin: 7px; list-style: none }
#navPersoDyn a { width: 50px; padding: 3px; display: block; border: 1px solid #ccc; }
#navPersoDyn a.activeSlide { background: #ccc }
#navPersoDyn a:focus { outline: none; }
#navPersoDyn img { border: none; display: block }
$('#cycle-7').cycle({
speed: 200,
pauseOnPagerHover: 1,
pager: '#navPerso',
pagerEvent: 'mouseover',
pagerAnchorBuilder: function(idx, slide) {
// retourne le sélecteur CSS d'un élément existant
return '#navPerso li:eq(' + idx + ') a';
}
});
//permet de désactiver le clic sur les liens
$("#navPerso a").click(function(){return false});
<ul id="navPerso" class="navPerso"> <li><a href="#"><img src="images/photo_iles_01.jpg" width="50px" height="50px" /></a></li> <li><a href="#"><img src="images/photo_iles_02.jpg" width="50px" height="50px" /></a></li> <li><a href="#"><img src="images/photo_iles_03.jpg" width="50px" height="50px" /></a></li> </ul> <div id="cycle-7" class="cycle"> <img src="images/photo_iles_01.jpg" /> <img src="images/photo_iles_02.jpg" /> <img src="images/photo_iles_03.jpg" /> </div>
Cycle - Pagination personnalisée bis
Voyage dans les îles
|
Voyage dans les îles |
$('#cycle-8').cycle({
timeout: 0,
pager: 'navText',
pagerEvent: 'mouseover',
pagerClick: updateLabel,
pagerAnchorBuilder: function(idx, slide) {
// retourne le sélecteur CSS d'un élément existant
return '.slide' + idx;
}
});
function updateLabel(zeroBasedSlideIndex, slideElement){
$("#label").html($(".slide"+zeroBasedSlideIndex).html());
this.speed=500;
}
//permet de désactiver le clic sur les liens
$(".navText a").click(function(){return false});
<h3>Voyage dans les îles</h3> <p class="navText">Notre expédition a commencé au départ de <a href="#" class="slide0">la plage</a> de l'hôtel. Ensuite nous avons pris le bateau et longer <a href="#" class="slide1">la côte</a>pour rejoindre l'aéroport. <a href="#" class="slide2">La nature</a> était sublime. Arrivés à l'aéroport, nous avons pris l'avion pour rentrer. Depuis l'avion, <a href="#" class="slide3">la vue</a> était vraiment magnifique. </p>