Skip to content Skip to sidebar Skip to footer

Css Animate Each List Item Seperate

I have the code snippet (HTML/CSS/JavaScript/jQuery). The question is about the
    with the class items-list in the right div with the class list-div. I managed to animate

Solution 1:

You can use a custom property to pass the delay to each element with Javascript. You can use keyframes or simple transitions triggered by classes or aria-attributes (even better).

/* Simplified for reading */LISTELEMENTS.each ...
  ELEMENT.style.setProperty('--item-animiation-delay', ELEMENTINDEX * 100 +"ms");
@keyframes fade-to-left {
  from {
    opacity: 0;
    transform: 100%;
  }
  
  to {
    opacity: 1;
    transform: none;
  }
}


.ListItem {
  animation-name: fade-to-left;
  animation-duration: 600ms;
  animation-delay: var(--item-animiation-delay, 300ms);
}

Solution 2:

    ul.items-list {
        position: relative;
    }
    ul.items-list li {
        position: absolute;
    }
    ul.items-list li:nth-child(1) { top: 500px; transition: top .2s; opacity: 0; }
    ul.items-list li:nth-child(2) { top: 500px; transition: top .2s .2s; opacity: 0; }
    ul.items-list li:nth-child(3) { top: 500px; transition: top .2s .4s; opacity: 0; }
    ul.items-list li:nth-child(4) { top: 500px; transition: top .2s .6s; opacity: 0; }

    ul.items-list.bindDynamicclass li:nth-child(1) { top: 0; opacity: 1; }
    ul.items-list.bindDynamicclass li:nth-child(2) { top: 20px; opacity: 1; }
    ul.items-list.bindDynamicclass li:nth-child(3) { top: 40px; opacity: 1; }
    ul.items-list.bindDynamicclass li:nth-child(4) { top: 60px; opacity: 1; }

Bind some class(.bindDynamicclass) to ul.items-list on scroll using js.

Post a Comment for "Css Animate Each List Item Seperate"