JSFiddle - React, Tailwind, and code Playground

by joshmoto

HTML

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/[email protected]/slick/slick.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/[email protected]/slick/slick.min.js"></script>
<div class="container">

  <div class="row">
    <div class="col-4">
      <div class="card card-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch.  
      </div>
    </div>
    <div class="col-4">
      <div class="card card-body">
        Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
      </div>  
    </div>
    <div class="col-4">
      <div class="card card-body">
        Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>

</div>

SCSS

@import "https://fonts.googleapis.com/css?family=Inconsolata";

BODY {
  background: url('https://i.imgur.com/gywUcTN.png');
}

.container {
  padding: 30px;
}

.card {
  background: red;
  border: {
    radius: 0;
    width: 0;
  }
  
  /* mask css */
  
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: 0 100%;
  -webkit-mask-size: 100% 30px;
  -webkit-mask-image: -webkit-gradient(linear, left top, left bottom, from(rgba(#000000, 1)), to(rgba(#000000, 0)));
  -webkit-mask-composite: initial;
  
}

.card-body {
  padding: 30px;
}

JavaScript

// page slider
$('#page-slider').slick({
  draggable: false,
  infinite: false,
  slidesToShow: 1,
  slidesToScroll: 1,
  dots: true,
  arrows: false,
  speed: 0,
  customPaging: function(slider, i) {
    var page_number = $(slider.$slides[i]).data('page');
    return '<button>.' + page_number + '</button>';
  },
  appendDots: $('.page-dots')

}).on('beforeChange', function(event, slick, currentSlide) {

  // add closed class
  $('#page-slider .slick-slide[data-slick-index="' + currentSlide + '"] .card').addClass('closed');

  // delay by 1 second before changing to next slide (not working)
  setTimeout(function() {
    // got nothing but time - 1 second
  }, 1000);

}).on('afterChange', function(event, slick, currentSlide) {

  // remove closed class
  $('#page-slider .slick-slide[data-slick-index="' + currentSlide + '"] .card').removeClass('closed');

});

// this sets a height in pixels for each .card
function page_heights() {
  $('#page-slider .card').each(function() {
    var h = $('.card-wrapper', this).outerHeight();
    $(this).css('height', h);
  });
}

// run page heights
page_heights();

// resize functions
$(window).resize(function() {

  // run page heights when resized
  page_heights();

});