Slick carousel adaptive height not working

Slick adaptive height not working

by joshmoto

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.8.1/slick-theme.min.css">
<div class="slider">
  <div data-dot-img="https://i.imgur.com/6JplNl6.png">
    <a href="https://i.imgur.com/q5Y5RCH.png">
      <img src="https://i.imgur.com/q5Y5RCH.png" alt="" />
    </a>
  </div>
  <div data-dot-img="https://i.imgur.com/6X5GKWJ.png">
    <a href="https://i.imgur.com/8HjXPXD.png">
      <img src="https://i.imgur.com/8HjXPXD.png" alt="" />
    </a>
  </div>
  <div data-dot-img="https://i.imgur.com/SefTwI1.png">
    <a href="https://i.imgur.com/vUDcfcy.png">
      <img src="https://i.imgur.com/vUDcfcy.png" alt="" />
    </a>
  </div>
  <div data-dot-img="https://i.imgur.com/IqLrd0o.png">
    <a href="https://i.imgur.com/okTDHas.png">
      <img src="https://i.imgur.com/okTDHas.png" alt="" />
    </a>
  </div>
</div>

CSS

body {
  margin: 0;
  padding: 20px;
}

.slick-slide > A {
  display: block;
  position: relative;
  height: 150px;
  width: 100%;
}

.slick-slide > A > IMG {
  position: absolute;
  width: 100%;
  display: block;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}

.slick-dots {
  bottom: -37.5px;
}

.slick-dots LI {
  width: 75px;
  height: 75px;
  opacity: .8;
}

.slick-dots LI.slick-active {
  opacity: 1;
}

.slick-dots LI.slick-active BUTTON,
.slick-dots LI:hover BUTTON {
  opacity: 1;
  transform: scale(1,1);
}

.slick-dots LI BUTTON {
  display: block;
  overflow: hidden;
  position: relative;
  width: 100%;
  height: auto;
  padding: 0;
  transition: all .5s ease;
  transform: scale(.75,.75);
}

.slick-dots LI BUTTON IMG {
  display: block;
  height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
}

.slick-dots LI BUTTON:before {
  display: block;
  position: relative;
  content: '';
  width: 100%;
  padding-top: 100%;
  height: auto;
}

JavaScript

// my slick slider options
const options = {
  slidesToShow: 1,
  slidesToScroll: 1,
  dots: true,
  arrows: false,
  adaptiveHeight: true,
  autoplay: true
};

// my slick slider as constant object
const mySlider = $('.slider').on('init', function(slick) {

  // constant var
  const slider = this;
	
  // slight delay so init completes render
  setTimeout(function() {

    // dot buttons
    let dots = $('.slick-dots > LI > BUTTON', slider);

    // each dot button function
    $.each(dots, function(i,e) {

      // slide id
      let slide_id = $(this).attr('aria-controls');
      
      // custom dot image
      let dot_img = $('#'+slide_id).data('dot-img');
      
      $(this).html('<img src="' + dot_img + '" alt="" />');

    });

  }, 100);


}).slick(options);