Anime JS

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/2.2.0/anime.js"></script>
<div id="functionBasedDuration" class="demo active">
  <h3 class="demo-title">Duration</h3>
  <div class="demo-content">
    <div class="line">
      <div class="small square shadow"></div>
      <div class="small square el" style="transform: translateX(-50px);">
      <div class="small square el" style="transform: translateX(0px);">
      </div>
    </div>
    <div class="line">
      <div class="small square shadow"></div>
      <div class="small square el" style="transform: translateX(0px);"></div>
    </div>
    <div class="line">
      <div class="small square shadow"></div>
      <div class="small square el" style="transform: translateX(0px);"></div>
    </div>
  </div>
</div>

CSS

.content {
  opacity: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-direction: row;
  flex-direction: row;
  width: 100%;
  height: 100%;
  transition: opacity 1s ease;
}

body.ready .content {
  opacity: 1;
}

/* Headers */

.header {
  position: absolute;
  z-index: 1;
  top: 0;
  width: 239px;
  padding: 0;
}

.logo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  width: 240px;
  height: 60px;
  padding: 10px 0 10px 55px;
  color: white;
  text-decoration: none;
  background-image: url(../img/icons/icon-doc.png);
  background-size: 32px;
  background-position: 12px 13px;
  background-repeat: no-repeat;
}

header {
  position: -webkit-sticky;
  position: -moz-sticky;
  position: -o-sticky;
  position: -ms-sticky;
  position: sticky;
  top: 0;
  z-index: 2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  width: 100%;
  height: 60px;
  padding-left: 20px;
  padding-right: 20px;
  border-bottom: 1px solid #000;
}

.logo,
h2 {
  opacity: .6;
  font-size: 22px;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-weight: 200;
}

.logo:hover {
  opacity: 1;
}

/* Panes */

.pane {
  position: relative;
  height: 100%;
}

/* Sidebar */

.sidebar {
  width: 240px;
  padding-top: 60px;
  border-right: 1px solid #000;
}

.navigation {
  overflow-y: auto;
  width: 100%;
  height: 100%;
  padding: 10px 0 20px 20px;
}

.navigation ul {
  height: 30px;
  overflow-y: hidden;
  -webkit-transition: opacity .4s ease;
  transition: opacity .4s ease;
}

.navigation ul li {
  position: relative;
}

.navigation ul li:before {
  content: "";
  display: block;
  position: absolute;
  top: 3px;
  left:...

JavaScript

function test() {
  anime({
    targets: '#functionBasedDuration .el',
    translateX: function (el, index) {
    	if(index === 1) {
       return 250
      }
    },
    direction: 'alternate',
    loop: true,
    duration: function(el, i, l) {
      console.log(el)
      return 1000 + (i * 1000);
    }
  });
}

test()