<div class="info">This resource was inspired by this <a target="_blank" href="https://dribbble.com/shots/2705517-boldybae">dribbble shot</a> by the talented <a href="https://dribbble.com/tokito" target="_blank">Tokito.</a></div>
<section class="cd-slider">
  <ul>
    <li data-color="#FF384B">
      <div class="content" style="background-image:url(https://i.imgur.com/i7VlkGV.png?2)">
        <blockquote>
          <p>I got my red dress on tonight dancing in the dark in the pale moonlight.</p>
          <span>Summertime Sadness - Lana Del Rey</span>
        </blockquote>
      </div>
    </li>
    <li data-color="#FF9C00">
      <div class="content" style="background-image:url(https://i.imgur.com/i7VlkGV.png?2)">
        <blockquote>
          <p>Will you still love me When I'm no longer young and beautiful Will you still love me</p>
          <span>Young And Beautiful - Lana Del Rey</span>
        </blockquote>
      </div>
    </li>
    <li data-color="#002AFF">
      <div class="content" style="background-image:url(https://i.imgur.com/i7VlkGV.png?2)">
        <blockquote>
          <p>Blue jeans White shirt Walked into the room You know you made my eyes burn</p>
          <span>Blue Jeans - Lana Del Rey</span>
        </blockquote>
      </div>
    </li>
  </ul>
  <nav>
    <div><a class="prev" href="#"></a></div>
    <div><a class="next" href="#"></a></div>
  </nav>
</section>
.info {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 9999999;
  margin: 1.5rem;
}
@import url(https://fonts.googleapis.com/css?family=Montserrat:700);
*, *::before, *::after {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
  border: 0;
}
html {
  font-size: 10px;
  font-size: calc(5px + 0.4vw);
}
body {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 1rem;
  color: #fff;
}
a {
  text-decoration: none;
  color: rgba(225, 255, 255, .8);
}
/* Slider style */
.cd-slider {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
}
.cd-slider.ie9 nav div span {
  display: none;
}
.cd-slider ul li {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  visibility: hidden;
  transition: visibility 0s .6s;
}
.cd-slider ul li::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  border-radius: 100%;
  width: 135vh;
  height: 135vh;
  border: solid rgba(0,0,0,0.2);
  border-width: 0;
  transform: translate(-50%, -50%);
  pointer-events: none;
  transition: border-width .4s .6s;
}
.content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: 50% 100%;
  background-size: auto 100%;
  background-repeat: no-repeat;
  mix-blend-mode: lighten;
  opacity: 0;
  transform: scale(1.2);
  transition: opacity .4s .6s, transform .4s .6s;
}
.content blockquote {
  position: absolute;
  bottom: 5%;
  left: 4%;
  z-index: 2;
  max-width: 45%;
}
blockquote p {
  font-size: 4rem;
  margin-bottom: 2rem;
}
blockquote span {
  font-size: 1.4rem;
}
/* current slide
---------------------------------*/
.cd-slider li.current_slide {
  visibility: visible;
}
.cd-slider li.current_slide::before {
  border-width: 16rem;
}
.cd-slider li.current_slide .content {
  opacity: 1;
  transform: scale(1);
}
/* nav
---------------------------------*/
nav div {
  position: absolute;
  top: 50%;
  left: 4%;
  width: 5rem;
  height: 5rem;
  margin-top: -2.5rem;
  list-style: none;
}
nav div:last-of-type {
  left: auto;
  right: 4%;
}
.prev, .next {
  position: relative;
  z-index: 100;
  width: 100%;
  height: 100%;
  display: block;
  border-radius: 100%;
  transition: box-shadow .3s;
}
.prev::before, .prev::after, .next::before, .next::after {
  content: '';
  position: absolute;
  left: 43%;
  background: #fff;
  width: .4rem;
  min-width: 3px;
  border-radius: 3px;
  height: 34%;
}
.prev::before {
  transform: rotate(45deg);
  top: 24%;
}
.prev::after {
  transform: rotate(-45deg);
  bottom: 24%;
}
.next::before, .next::after {
  left: auto;
  right: 43%;
}
.next::before {
  transform: rotate(-45deg);
  top: 24%;
}
.next::after {
  transform: rotate(45deg);
  bottom: 24%;
}
.prev:hover, .next:hover {
  box-shadow: 0 0 0 1rem rgba(0, 0, 0, 0.15);
}
nav > div > span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 100%;
  z-index: 5;
  pointer-events: none;
  will-change: width, height;
  transform: translate(-50%, -50%);
  transition: width .6s, height .6s;
}
(function() {
  
  var autoUpdate = false,
      timeTrans = 4000;
  
  var cdSlider = document.querySelector('.cd-slider'),
    item = cdSlider.querySelectorAll("li"),
    nav = cdSlider.querySelector("nav");

  item[0].className = "current_slide";

  for (var i = 0, len = item.length; i < len; i++) {
    var color = item[i].getAttribute("data-color");
    item[i].style.backgroundColor=color;
  }

  // Detect IE
  // hide ripple effect on IE9
  var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE");
    if ( msie > 0 ) {
      var version = parseInt(ua.substring(msie+ 5, ua.indexOf(".", msie)));
      if (version === 9) { cdSlider.className = "cd-slider ie9";}
  }

  if (item.length <= 1) {
    nav.style.display = "none";
  }

  function prevSlide() {
    var currentSlide = cdSlider.querySelector("li.current_slide"),
      prevElement = currentSlide.previousElementSibling,
      prevSlide = ( prevElement !== null) ? prevElement : item[item.length-1],
      prevColor = prevSlide.getAttribute("data-color"),
      el = document.createElement('span');

    currentSlide.className = "";
    prevSlide.className = "current_slide";

    nav.children[0].appendChild(el);

    var size = ( cdSlider.clientWidth >= cdSlider.clientHeight ) ? cdSlider.clientWidth*2 : cdSlider.clientHeight*2,
        ripple = nav.children[0].querySelector("span");

    ripple.style.height = size + 'px';
    ripple.style.width = size + 'px';
    ripple.style.backgroundColor = prevColor;

    ripple.addEventListener("webkitTransitionEnd", function() {
      if (this.parentNode) {
        this.parentNode.removeChild(this);
      }
    });

    ripple.addEventListener("transitionend", function() {
      if (this.parentNode) {
        this.parentNode.removeChild(this);
      }
    });

  }

  function nextSlide() {
    var currentSlide = cdSlider.querySelector("li.current_slide"),
      nextElement = currentSlide.nextElementSibling,
      nextSlide = ( nextElement !== null ) ? nextElement : item[0],
      nextColor = nextSlide.getAttribute("data-color"),
      el = document.createElement('span');

    currentSlide.className = "";
    nextSlide.className = "current_slide";

    nav.children[1].appendChild(el);

    var size = ( cdSlider.clientWidth >= cdSlider.clientHeight ) ? cdSlider.clientWidth*2 : cdSlider.clientHeight*2,
        ripple = nav.children[1].querySelector("span");

    ripple.style.height = size + 'px';
    ripple.style.width = size + 'px';
    ripple.style.backgroundColor = nextColor;

    ripple.addEventListener("webkitTransitionEnd", function() {
      if (this.parentNode) {
        this.parentNode.removeChild(this);
      }
    });

    ripple.addEventListener("transitionend", function() {
      if (this.parentNode) {
        this.parentNode.removeChild(this);
      }
    });

  }

  updateNavColor();

  function updateNavColor () {
    var currentSlide = cdSlider.querySelector("li.current_slide");

    var nextColor = ( currentSlide.nextElementSibling !== null ) ? currentSlide.nextElementSibling.getAttribute("data-color") : item[0].getAttribute("data-color");
    var prevColor = ( currentSlide.previousElementSibling !== null ) ? currentSlide.previousElementSibling.getAttribute("data-color") : item[item.length-1].getAttribute("data-color");

    if (item.length > 2) {
      nav.querySelector(".prev").style.backgroundColor = prevColor;
      nav.querySelector(".next").style.backgroundColor = nextColor;
    }
  }

  nav.querySelector(".next").addEventListener('click', function(event) {
    event.preventDefault();
    nextSlide();
    updateNavColor();
  });

  nav.querySelector(".prev").addEventListener("click", function(event) {
    event.preventDefault();
    prevSlide();
    updateNavColor();
  });
  
  //autoUpdate
  setInterval(function() {
    if (autoUpdate) {
      nextSlide();
      updateNavColor();
    };
  },timeTrans);

})();

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.