Ajouter des boutons personnalisés sur Slick Carousel

Comment appliquer les boutons custom prev et next à slick carousel? J'ai essayé une image de fond sur l' .slick-prev et .slick-next classes css. J'ai aussi essayé d'ajouter une nouvelle classe selon la documentation, mais les flèches complètement disparu:

<script type="text/javascript">
$('.big-image').slick({
  dots: false,
  infinite: true,
  speed: 300,
  slidesToShow: 1,
  centerMode: true,
  variableWidth: true,
  nextArrow: '.next_caro',
  prevArrow: '.previous_caro'
});
</script>

tout pointeur serait apprécié.

19
demandé sur JasonMArcher 2015-03-14 02:25:40

10 réponses

je sais que c'est une vieille question, mais peut-être que je peux être utile à quelqu'un, en colombie-britannique aussi perplexe moi jusqu'à ce que j'ai lu la documentation un peu plus:

prevArrow chaîne (html|sélecteur jQuery) | objet (nœud DOM|jQuery objet) Précédent Vous permet de sélectionner un noeud ou de personnaliser le HTML pour le " précédent" flèche.

nextArrow chaîne (html|sélecteur jQuery) | objet (nœud DOM|jQuery objet) permet ensuite vous pouvez sélectionner un noeud ou personnaliser le HTML pour la flèche "suivante".

c'est comment j'ai changé mes boutons.. a parfaitement fonctionné.

  $('.carousel-content').slick({
      prevArrow:"<img class='a-left control-c prev slick-prev' src='../images/shoe_story/arrow-left.png'>",
      nextArrow:"<img class='a-right control-c next slick-next' src='../images/shoe_story/arrow-right.png'>"
  });
63
répondu tallgirltaadaa 2016-08-10 10:31:11

si vous voulez utiliser des icônes de n'importe quelle bibliothèque de police d'icône, vous pouvez l'essayer dans l'option tout en appelant le curseur dans votre fichier js.

prevArrow: '<div class="class-to-style"><span class="fa fa-angle-left"></span><span class="sr-only">Prev</span></div>',

nextArrow: '<div class="class-to-style"><span class="fa fa-angle-right"></span><span class="sr-only">Next</span></div>'

ici " fa " vient de FontAwesome icon font library.

9
répondu Xuwel Khan 2016-06-17 20:31:42

Dans la doc

prevArrow / nextArrow

Type:string (html|jQuery selector) | object (DOM node|jQuery object)

un exemple de code

$(document).ready(function(){
    $('.slick-carousel-1').slick({
        // @type {string} html
        nextArrow: '<button class="any-class-name-you-want-next">Next</button>',
        prevArrow: '<button class="any-class-name-you-want-previous">Previous</button>'
    });

    $('.slick-carousel-2').slick({
        // @type {string} jQuery Selector
        nextArrow: '.next',
        prevArrow: '.previous'
    });

    $('.slick-carousel-3').slick({
        // @type {object} DOM node
        nextArrow: document.getElementById('slick-next'),
        prevArrow: document.getElementById('slick-previous')
    });

    $('.slick-carousel-4').slick({
        // @type {object} jQuery Object
        nextArrow: $('.example-4 .next'),
        prevArrow: $('.example-4 .previous')
    });
});

une petite note sur le style

une fois que Slick connaît vos nouveaux boutons, vous pouvez les adapter au contenu de votre cœur; en regardant l'exemple ci-dessus, vous pouvez les cibler en fonction de class nom id nom de ou même element.

quelqu'un a-t-il dit JSFiddle?

9
répondu Kenneth Stoddard 2017-07-14 14:30:41

si vous utilisez Bootstrap 3, vous pouvez utiliser les Glyphicons.

.slick-prev:before, .slick-next:before {
    font-family: "Glyphicons Halflings", "slick", sans-serif;
    font-size: 40px;
}

.slick-prev:before { content: "\e257"; }
.slick-next:before { content: "\e258"; }
6
répondu Yes Barry 2016-03-09 23:31:36

pourquoi vous ne pouvez pas utiliser les classes CSS par défaut et Ajouter un peu de votre style?

.slick-next {
  /*my style*/
  background: url(my-image.png);
}

et

.slick-prev {
  /*my style*/
  background: url(my-image.png);
}

avez-vous utilisé de simples background propriété css?

dans l'exemple: http://jsfiddle.net/BNvke/1/

Vous pouvez utiliser Police Génial trop. N'oubliez pas les pseudo-éléments CSS.

et n'oubliez pas jQuery, vous pouvez remplacer des éléments, ajouter des classes, etc.

3
répondu Aivaras Čenkus 2015-03-14 00:08:45

Si vous utilisez sass, vous pouvez simplement définir les variables mentionnées ci-dessous pour utiliser des icônes fournies par d'autres polices,

$slick-font-family:FontAwesome;
$slick-prev-character: "\f053";
$slick-next-character: "\f054";

ceux-ci vont changer la famille de police utilisée par le thème CSS de slick et aussi l'unicode pour prev et Prochain bouton. Cet exemple utilisera les icônes chevron-gauche et chevron-droite de FontAwesome.

les autres variables sass qui peuvent être configurées sont données dans Slick GitHub page

2
répondu par 2017-01-27 13:21:47

C'est parce qu'ils utilisent un icône de la police pour les boutons. Ils utilisent la police" Slick " comme vous pouvez le voir dans cette image:

enter image description here

en gros, la lettre "A" devient la forme d'une icône, la lettre "B" la forme d'une autre et ainsi de suite.

Par exemple:

enter image description here

Si vous souhaitez en savoir plus sur l'icône polices cliquez ici

Si vous vous voulez changer les icônes, vous devez remplacer le code de bouton entier ou vous pouvez aller à www.fontastic.me et créer votre propre police d'icône. Après cela, remplacer le fichier de police pour l'actuel et vous aurez votre propre icône.

1
répondu mrpinkman 2015-03-14 21:55:43

Cela a fonctionné pour moi, quand beaucoup de ces autres éléments n'ont pas:

.slick-prev:before {
  content: url('your-arrow.png');
}
.slick-next:before {
  content: url('your-arrow.png');
}
1
répondu Buck3000 2017-08-24 19:53:20
var a = $('.MyCarouselContainer').slick({
    prevArrow: '<canvas class="prevArrowCanvas a-left control-c prev slick-prev" width="15" height="50"></canvas>',
    nextArrow: '<canvas class="nextArrowCanvas a-right control-c next slick-next" width="15" height="50"></canvas>'
});

function drawNextPreviousArrows(strokeColor) {
    var c = $(".prevArrowCanvas")[0];
    var ctx = c.getContext("2d");
    ctx.clearRect(0, 0, c.width, c.height);
    ctx.moveTo(15, 0);
    ctx.lineTo(0, 25);
    ctx.lineTo(15, 50);
    ctx.lineWidth = 2;
    ctx.strokeStyle = strokeColor;
    ctx.stroke();
    var c = $(".nextArrowCanvas")[0];
    var ctx = c.getContext("2d");
    ctx.clearRect(0, 0, c.width, c.height);
    ctx.moveTo(0, 0);
    ctx.lineTo(15, 25);
    ctx.lineTo(0, 50);
    ctx.lineWidth = 2;
    ctx.strokeStyle = strokeColor;
    ctx.stroke();
}
drawNextPreviousArrows("#cccccc");

puis ajouter le css

.slick-prev, .slick-next 
    height: 50px;s
}
0
répondu mhenry1384 2017-01-29 05:51:49

c'est très facile. Utilisez le code bellow, ça marche pour moi. Ici j'ai utilisé l'icône de fontawesome mais vous pouvez utiliser n'importe quoi Comme image ou n'importe quel autre code D'icône.

$(document).ready(function(){
    $('.slider').slick({
        autoplay:true,
        arrows: true,
        prevArrow:"<button type='button' class='slick-prev pull-left'><i class='fa fa-angle-left' aria-hidden='true'></i></button>",
        nextArrow:"<button type='button' class='slick-next pull-right'><i class='fa fa-angle-right' aria-hidden='true'></i></button>"
    });
});
0
répondu Chamon Roy 2017-06-01 15:25:43