Add custom buttons on Slick Carousel

前端 未结 11 667
迷失自我
迷失自我 2020-12-23 14:23

How do I apply custom prev and next buttons to slick carousel? I have tried a background image on the .slick-prev and .slick-next css classes. I ha

相关标签:
11条回答
  • 2020-12-23 15:02

    Why you cant use default CSS classes and add some your style?

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

    and

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

    Are you used simple background css property?

    in example: http://jsfiddle.net/BNvke/1/

    You can use Font Awesome too. Don't forget about CSS pseudo elements.

    And don't forget jQuery, you can replace elements, add classes, etc.

    0 讨论(0)
  • 2020-12-23 15:05
    $('.slider').slick({
      slidesToShow: 3,
      slidesToScroll: 1,
      speed: 500,
      dots: true,
      arrows: true,
      centerMode: false,
      focusOnSelect: false,
      autoplay: false,
      autoplaySpeed: 2000,
      slide: 'div',  
        nextArrow: '<button id="next">Next >',
            prevArrow: '<button id="previous">previous >',  
        
      
    });
    

    Result :

    0 讨论(0)
  • 2020-12-23 15:06

    This worked for me when a lot of these other items did not:

    .slick-prev:before {
      content: url('your-arrow.png');
    }
    .slick-next:before {
      content: url('your-arrow.png');
    }
    
    0 讨论(0)
  • 2020-12-23 15:07

    A variation on the answer by @tallgirltaadaa , draw your own button in the shape of a caret:

    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");
    

    then add the css

    .slick-prev, .slick-next 
        height: 50px;s
    }
    
    0 讨论(0)
  • 2020-12-23 15:12

    From the docs

    prevArrow/nextArrow

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

    Some example 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')
        });
    });
    

    A little note on styling

    Once Slick knows about your new buttons, you can style them to your heart's content; looking at the above example, you could target them based on class name, id name or even element.

    Did somebody say JSFiddle?

    0 讨论(0)
提交回复
热议问题