<div class="portfolio slider-wrapper">
    <ul class="slider" data-step1="M1402,800h-2V0h1c0.6,0,1,0.4,1,1V800z" data-step2="M1400,800H379L771.2,0H1399c0.6,0,1,0.4,1,1V800z" data-step3="M1400,800H0V0h1399c0.6,0,1,0.4,1,1V800z" data-step4="M-2,800h2V0h-1c-0.6,0-1,0.4-1,1V800z" data-step5="M0,800h1021L628.8,0L1,0C0.4,0,0,0.4,0,1L0,800z" data-step6="M0,800h1400V0L1,0C0.4,0,0,0.4,0,1L0,800z">

        <li class="visible">
            <div class="svg-wrapper">
                <svg viewBox="0 0 1400 800">
                    <defs>
                        <clipPath id="image-1">
                            <path id="changing-path-1" d="M1400,800H0V0h1399c0.6,0,1,0.4,1,1V800z"/>
                        </clipPath>             
                    </defs>           
                    <image height='100%' width="100%" clip-path="url(#image-1)" href="https://alikinvv.github.io/svg-mask-slider/img/2.jpg"></image>
                    <div class="slider__info">
                        <p class="slider__title text">
                            <span class="text__first">
                                <span class="text__word">News</span>
                                <span class="text__first-bg" style="background-color: #3A7E94"></span>
                            </span>
                        </p>
                        <p class="slider__desc text">
                            <span class="text__second">
                                <span class="text__word">BBC News provides trusted World and UK news as well <br> as local and regional perspectives. </span>
                                <span class="text__second-bg" style="background-color: #E688A1"></span>
                            </span>
                        </p>
                    </div>
                    <div class="slider__link cd-slider-navigation">
                        <a href="#0" class="next-slide slider__site text">
                            <span class="text__first">
                                <span class="text__word">Visit bbc.com<img class="arrow" src="https://alikinvv.github.io/svg-mask-slider/img/arrow.svg" alt=""></span>
                                <span class="text__first-bg" style="background-color: #3A7E94"></span>
                            </span>
                        </a>
                        <p class="slider__visit text">
                            <span class="text__second">
                                <span class="text__word">Official website</span>
                                <span class="text__second-bg" style="background-color: #E688A1"></span>
                            </span>
                        </p>
                    </div>
                </svg>
            </div> <!-- .svg-wrapper -->
        </li>

        <li>
            <div class="svg-wrapper">
                <svg viewBox="0 0 1400 800">
                    <defs>
                        <clipPath id="image-2">
                            <path id="changing-path-2" d="M1400,800H0V0h1399c0.6,0,1,0.4,1,1V800z"/>
                        </clipPath>
                    </defs>
                    <image height='100%' width="100%" clip-path="url(#image-2)" href="https://alikinvv.github.io/svg-mask-slider/img/1.jpg"></image>  
                    
                    <div class="slider__info">
                        <p class="slider__title text">
                            <span class="text__first">
                                <span class="text__word">Search</span>
                                <span class="text__first-bg" style="background-color: #535986"></span>
                            </span>
                        </p>
                        <p class="slider__desc text">
                            <span class="text__second">
                                <span class="text__word">Search the world's information, including webpages, images, videos and more. <br> Google has many special features.</span>
                                <span class="text__second-bg" style="background-color: #DABDB2"></span>
                            </span>
                        </p>

                    </div>
                    <div class="slider__link cd-slider-navigation">
                        <a href="#0" class="next-slide slider__site text">
                            <span class="text__first">
                                <span class="text__word">Visit google.com<img class="arrow" src="https://alikinvv.github.io/svg-mask-slider/img/arrow.svg" alt=""></span>
                                <span class="text__first-bg" style="background-color: #535986"></span>
                            </span>
                        </a>
                        <p class="slider__visit text">
                            <span class="text__second">
                                <span class="text__word">Official website</span>
                                <span class="text__second-bg" style="background-color: #DABDB2"></span>
                            </span>
                        </p>
                    </div>        
                </svg>

            </div> <!-- .svg-wrapper -->
        </li>

        <li>
            <div class="svg-wrapper">
                <svg viewBox="0 0 1400 800">
                    <defs>
                        <clipPath id="image-3">
                            <path id="changing-path-3" d="M1400,800H0V0h1399c0.6,0,1,0.4,1,1V800z"/>
                        </clipPath>
                    </defs>
                    <image height='100%' width="100%" clip-path="url(#image-3)" href="https://alikinvv.github.io/svg-mask-slider/img/3.jpg"></image>  
                    
                    <div class="slider__info">
                        <p class="slider__title text">
                            <span class="text__first">
                                <span class="text__word">BBC</span>
                                <span class="text__first-bg" style="background-color: #1ABDFE"></span>
                            </span>
                        </p>
                        <p class="slider__desc text">
                            <span class="text__second">
                                <span class="text__word">BBC News provides trusted World and UK news as well <br> as local and regional perspectives. </span>
                                <span class="text__second-bg" style="background-color: #CB1537"></span>
                            </span>
                        </p>
                    </div>
                    <div class="slider__link cd-slider-navigation">
                        <a href="#0" class="next-slide slider__site text">
                            <span class="text__first">
                                <span class="text__word">Visit bbc.com<img class="arrow" src="https://alikinvv.github.io/svg-mask-slider/img/arrow.svg" alt=""></span>
                                <span class="text__first-bg" style="background-color: #1ABDFE"></span>
                            </span>
                        </a>
                        <p class="slider__visit text">
                            <span class="text__second">
                                <span class="text__word">Official website</span>
                                <span class="text__second-bg" style="background-color: #CB1537"></span>
                            </span>
                        </p>
                    </div>      
                </svg>

            </div> <!-- .svg-wrapper -->
        </li>

    </ul> <!-- .slider -->

    <ol class="slider-controls">
          <li class="selected"><a href="#0"><em>Item 1</em></a></li>
        <li><a href="#0"><em>Item 2</em></a></li>
        <li><a href="#0"><em>Item 2</em></a></li>
      <!-- other list items here -->
   </ol> <!-- .slider-controls -->
</div> <!-- .slider-wrapper -->

<!-- github  -->
<a href="https://github.com/alikinvv/svg-mask-slider" target="_blank" class="github-corner" style="position:absolute;top:0;right:0;z-index:9999" aria-label="View source on GitHub"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>
html, body {
  height: 100%;
}

body {
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  color: #37474F;
  min-height: 800px;
}
.container-fluid {
  max-width: 1400px;
}
.header {
    padding: 30px 65px;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 113px;
    z-index: 10;
    mix-blend-mode: exclusion;
    filter: invert(65%);
    &__logo {
      width: 50px;
      img {
        width: 100%;
      }
    }
    &__menu {
      position: absolute;
      top: 30px;
      right: 65px;
    width: 50px;
    cursor: pointer;
    }
}
.icon {
  display: inline-block;
  width: 2em;
  height: 2em;
  font-size: 30px;
}
.slider-wrapper {
  position: relative;
  width: 90%;
  max-width: 1024px;
  margin: 2em auto;
  /* hide horizontal scrollbar on IE11 */
  overflow-x: hidden;
  padding: 30px 65px;
}

.slider {
  & > li {
    position: absolute; 
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    /* hide vertical scrollbar on IE11 */
    overflow: hidden;
    &.visible {
      position: relative;
      z-index: 2;
      opacity: 1;
      .text span.text__word {opacity: 0;}
    }
    &.is-animating {
      z-index: 3;
      opacity: 1;
    }
  }
  &__info {
    margin-left: 65px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    left: 0;
    color: #fff;
  }
  &__title {
    font-weight: 700;
    font-size: 36px;
      margin-bottom: 7px;
      overflow: hidden;     
      span {
        display: block;
    }
  }
  &__desc {
    font-size: 10px;
    overflow: hidden;
    span {
      display: block;
    }
  }
  &__site {
    display: block;
    font-weight: bold;
    font-size: 13px;
  }
  &__visit {
    display: block;
      margin-right: 32px;
  }
  &__link {
    padding-right: 32px;
    position: absolute;
    top: 50%; 
    transform: translateY(-50%);
    right: 32px;
    color: #fff;
    text-align: right;
    font-size: 10px;
    overflow: hidden;
    a {
      color: #fff;
      overflow: hidden;
      display: block;
      &:hover, &:focus {
        text-decoration: none;
      }
    }
    .arrow {
      position: relative;
      right: 0;
    }
  }
  image {
    pointer-events: none;
    transform-origin: 50% 50%;
  }
}

.slider .svg-wrapper {
  /* using padding Hack to fix bug on IE - svg height not properly calculated */
  height: 0;
  padding-bottom: 57.15%;
}

.slider-wrapper {
  width: 100%;
  height: calc(100% + 9px);
  padding: 0;
  margin: -9px 0 0;
  max-width: 100%;
  overflow: hidden;
  ul {
    margin: 0;
    padding: 0;
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      overflow: hidden;
      // transition-property: all;
      // transition-duration: 500ms;
      // transition-timing-function: cubic-bezier(0.68, -0.55, 0.27, 1.55);
      //transition-property: all;
      //transition-duration: 1000ms;
      //transition-timing-function: cubic-bezier(.25,0,.25,1);
      &.animate {
        top: 100px;
        right: 120px;
        left: 120px;
        bottom: 100px;

      }
  }
  svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
}

/* -------------------------------- 

Slider navigation

-------------------------------- */
.slider-navigation li {
  position: absolute;
  z-index: 3;
  top: 50%;
  bottom: auto;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  right: 10px;
  height: 48px;
  width: 48px;
}
.slider-navigation li a {
  display: block;
  height: 100%;
  overflow: hidden;
  text-indent: 100%;
  white-space: nowrap;
  -webkit-transition: -webkit-transform 0.2s;
  -moz-transition: -moz-transform 0.2s;
  transition: transform 0.2s;
}
.no-touch .slider-navigation li a:hover {
  -webkit-transform: scale(1.1);
  -moz-transform: scale(1.1);
  -ms-transform: scale(1.1);
  -o-transform: scale(1.1);
  transform: scale(1.1);
}
.slider-navigation li:last-of-type {
  left: 10px;
  right: auto;
}
.slider-navigation li:last-of-type a {
  background-position: -48px 0;
}

/* -------------------------------- 

Slider dots/controls 

-------------------------------- */
.slider-controls {
  position: absolute;
  bottom: 20px;
  left: 50%;
  right: auto;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  transform: translateX(-50%);
  z-index: 3;
  text-align: center;
  width: 90%;
  mix-blend-mode: exclusion;
  -webkit-filter: invert(65%);
  filter: invert(65%);
}
.slider-controls::after {
  clear: both;
  content: "";
  display: table;
}
.slider-controls li {
  display: inline-block;
  margin-right: 10px;
}
.slider-controls li:last-of-type {
  margin-right: 0;
}
.slider-controls li.selected a {
  background-color: #ffffff;
}
.slider-controls a {
  display: block;
  /* image replacement */
  overflow: hidden;
  text-indent: 100%;
  white-space: nowrap;
  color: transparent;
  height: 10px;
  width: 10px;
  border-radius: 50%;
  border: 2px solid #ffffff;
}
.no-touch .slider-controls a:hover {
  background-color: #ffffff;
}

.text__first, .text__second{
  position: relative;
}

.text__word{
  opacity: 0;
}

.text__first-bg, .text__second-bg{
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 100;
  transform-origin: left;
  transform: scaleX(0);
}

.text__first-bg{
  background-color: #5fbff9;
}

.text__second-bg{
  background-color: #f06543;
}
View Compiled
jQuery(document).ready(function(){

  var time = 100;
  var timetext = 1400;

  var trigger = false;

  var tl = new TimelineLite({delay: 1}),
    firstBg = document.querySelectorAll('.text__first-bg'),
    secBg = document.querySelectorAll('.text__second-bg'),
    word  = document.querySelectorAll('.text__word');
  
    tl
    .to(firstBg, 0.2, {scaleX:1})
    .to(secBg, 0.2, {scaleX:1})
    .to(word, 0.1, {opacity:1}, "-=0.1")  
    .to(firstBg, 0.2, {scaleX:0})
    .to(secBg, 0.2, {scaleX:0});
  
  trigger = true;

  var tl2 = new TimelineLite({delay: 1});

  tl2
    .to($('.text__word'), 0.1, {opacity: 0})
    .to($('.slider image'), 0.2, {scale: 1},'-=0.1')
    .to($('.slider'), 0.9, {ease: Circ.easeOut, top: 100, left: 120, right: 120, bottom: 100},'-=0.2')
    .to($('.slider'), 0.75, {ease: Elastic.easeOut.config(4, 1.5), top: -5, left: -5, right: -5, bottom: -5}, )
    //.to($('.slider image'), 2, {ease: Power4.easeOut,scale: 1}, '-=1')
    .pause();
  
  var duration = 500,
    epsilon = (time / 60 / duration) / 4,
    firstCustomMinaAnimation = bezier(.42,.03,.77,.63, epsilon),
    secondCustomMinaAnimation = bezier(.27,.5,.6,.99, epsilon),
    animating = false;


  //initialize the slider
  $('.slider-wrapper').each(function(){
    initSlider($(this));
  });

  function initSlider(sliderWrapper) {
    //cache jQuery objects
    var slider = sliderWrapper.find('.slider'),
      sliderNav = sliderWrapper.find('.slider-navigation'),
      sliderControls = sliderWrapper.find('.slider-controls').find('li');

    //store path 'd' attribute values 
    var pathArray = [];
    pathArray[0] = slider.data('step1');
    pathArray[1] = slider.data('step4');
    pathArray[2] = slider.data('step2');
    pathArray[3] = slider.data('step5');
    pathArray[4] = slider.data('step3');
    pathArray[5] = slider.data('step6');

    //update visible slide when user clicks next/prev arrows
    // sliderNav.on('click', '.next-slide', function(event){
    //  event.preventDefault();
    //  setTimeout(function() {
    //  nextSlide(slider, sliderControls, pathArray);
    //  },time);
    // });
    // sliderNav.on('click', '.prev-slide', function(event){
    //  event.preventDefault();
    //  setTimeout(function() {
    //    prevSlide(slider, sliderControls, pathArray);
    //  },time);
    // });

    //detect swipe event on mobile - update visible slide
    slider.on('swipeleft', function(event){
      if(trigger) {
        trigger = false;
        setTimeout(function() {
          prevSlide(slider, sliderControls, pathArray);
        },time);
    
        tl2.restart();
    
        setTimeout(function() {
          tl.restart()
          trigger = true;
        },timetext);
      } 
    });

    slider.on('swiperight', function(event){
      if(trigger) {
        trigger = false;
        setTimeout(function() {
          nextSlide(slider, sliderControls, pathArray);
        },time);
    
        tl2.restart();
    
        setTimeout(function() {
          tl.restart()
          trigger = true;
        },timetext);
      }   
    });

    //update visible slide when user clicks .slider-controls buttons
    sliderControls.on('click', function(event){
      event.preventDefault();
      var selectedItem = $(this);
      if(!selectedItem.hasClass('selected') && trigger ) {
        trigger = false;

        setTimeout(function() {
            // if it's not already selected
        var selectedSlidePosition = selectedItem.index(),
          selectedSlide = slider.children('li').eq(selectedSlidePosition),
          visibleSlide = retrieveVisibleSlide(slider),
          visibleSlidePosition = visibleSlide.index(),
          direction = '';
        direction = ( visibleSlidePosition < selectedSlidePosition) ? 'next': 'prev';
        updateSlide(visibleSlide, selectedSlide, direction, sliderControls, pathArray);
        },time);

        tl2.restart();

        setTimeout(function() {
          tl.restart()
          trigger = true;
        },timetext);        
      }
    });

    //keyboard slider navigation
    $(document).keyup(function(event){
      if(event.which=='37' && elementInViewport(slider.get(0)) && trigger ) {
        trigger = false;        
        setTimeout(function() {
          prevSlide(slider, sliderControls, pathArray);
        },time);
        
        tl2.restart();

        setTimeout(function() {
          tl.restart()
          trigger = true;
        },timetext);
      } else if( event.which=='39' && elementInViewport(slider.get(0)) && trigger ) {
        trigger = false;

        setTimeout(function() {
          nextSlide(slider, sliderControls, pathArray);
        },time);  

        tl2.restart();

        setTimeout(function() {
          tl.restart()
          trigger = true;
        },timetext);
      }
    });

  }

  function retrieveVisibleSlide(slider, sliderControls, pathArray) {
    return slider.find('.visible');
  }
  function nextSlide(slider, sliderControls, pathArray ) {
    var visibleSlide = retrieveVisibleSlide(slider),
      nextSlide = ( visibleSlide.next('li').length > 0 ) ? visibleSlide.next('li') : slider.find('li').eq(0);
    updateSlide(visibleSlide, nextSlide, 'next', sliderControls, pathArray);
  }
  function prevSlide(slider, sliderControls, pathArray ) {
    var visibleSlide = retrieveVisibleSlide(slider),
        prevSlide = ( visibleSlide.prev('li').length > 0 ) ? visibleSlide.prev('li') : slider.find('li').last();
      updateSlide(visibleSlide, prevSlide, 'prev', sliderControls, pathArray);
  }
  function updateSlide(oldSlide, newSlide, direction, controls, paths) {
    if(!animating) {
      //don't animate if already animating
      animating = true;
      var clipPathId = newSlide.find('path').attr('id'),
        clipPath = Snap('#'+clipPathId);

      if( direction == 'next' ) {
        var path1 = paths[0],
          path2 = paths[2],
          path3 = paths[4];
      } else {
        var path1 = paths[1],
          path2 = paths[3],
          path3 = paths[5];
      }

      updateNavSlide(newSlide, controls);
      newSlide.addClass('is-animating');
      clipPath.attr('d', path1).animate({'d': path2}, duration, firstCustomMinaAnimation, function(){
        clipPath.animate({'d': path3}, duration, secondCustomMinaAnimation, function(){
          oldSlide.removeClass('visible');
          newSlide.addClass('visible').removeClass('is-animating');
          animating = false;
        });
      });
    }
  }

  function updateNavSlide(actualSlide, controls) {
    var position = actualSlide.index();
    controls.removeClass('selected').eq(position).addClass('selected');
  }

  function bezier(x1, y1, x2, y2, epsilon){
    //https://github.com/arian/cubic-bezier
    var curveX = function(t){
      var v = 1 - t;
      return 3 * v * v * t * x1 + 3 * v * t * t * x2 + t * t * t;
    };

    var curveY = function(t){
      var v = 1 - t;
      return 3 * v * v * t * y1 + 3 * v * t * t * y2 + t * t * t;
    };

    var derivativeCurveX = function(t){
      var v = 1 - t;
      return 3 * (2 * (t - 1) * t + v * v) * x1 + 3 * (- t * t * t + 2 * v * t) * x2;
    };

    return function(t){

      var x = t, t0, t1, t2, x2, d2, i;

      // First try a few iterations of Newton's method -- normally very fast.
      for (t2 = x, i = 0; i < 8; i++){
        x2 = curveX(t2) - x;
        if (Math.abs(x2) < epsilon) return curveY(t2);
        d2 = derivativeCurveX(t2);
        if (Math.abs(d2) < 1e-6) break;
        t2 = t2 - x2 / d2;
      }

      t0 = 0, t1 = 1, t2 = x;

      if (t2 < t0) return curveY(t0);
      if (t2 > t1) return curveY(t1);

      // Fallback to the bisection method for reliability.
      while (t0 < t1){
        x2 = curveX(t2);
        if (Math.abs(x2 - x) < epsilon) return curveY(t2);
        if (x > x2) t0 = t2;
        else t1 = t2;
        t2 = (t1 - t0) * .5 + t0;
      }

      // Failure
      return curveY(t2);

    };
  };

  function elementInViewport(el) {
    var top = el.offsetTop;
    var left = el.offsetLeft;
    var width = el.offsetWidth;
    var height = el.offsetHeight;

    while(el.offsetParent) {
        el = el.offsetParent;
        top += el.offsetTop;
        left += el.offsetLeft;
    }

    return (
        top < (window.pageYOffset + window.innerHeight) &&
        left < (window.pageXOffset + window.innerWidth) &&
        (top + height) > window.pageYOffset &&
        (left + width) > window.pageXOffset
    );
  }
});

External CSS

  1. https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css

External JavaScript

  1. https://alikinvv.github.io/svg-mask-slider/js/libs/jquery-2.1.4.js
  2. https://alikinvv.github.io/svg-mask-slider/js/libs/jquery.mobile.custom.min.js
  3. https://alikinvv.github.io/svg-mask-slider/js/libs/snap.svg-min.js
  4. https://alikinvv.github.io/svg-mask-slider/js/libs/bootstrap.min.js
  5. https://cdnjs.cloudflare.com/ajax/libs/gsap/1.20.2/TweenMax.min.js