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()