Mai exact, "linia" intrerupta este compusa din mai multe etichete HTML div ce au o animatie identica insa momentul cand animatia incepe este intarziat.
<div class="wave"> <div class="wave-layer"> <div class="wave-layer-square wave-layer-square1"></div> <div class="wave-layer-square wave-layer-square2"></div> <div class="wave-layer-square wave-layer-square3"></div> <div class="wave-layer-square wave-layer-square4"></div> <div class="wave-layer-square wave-layer-square5"></div> <div class="wave-layer-square wave-layer-square6"></div> <div class="wave-layer-square wave-layer-square7"></div> <div class="wave-layer-square wave-layer-square8"></div> <div class="wave-layer-square wave-layer-square9"></div> <div class="wave-layer-square wave-layer-square10"></div> <div class="wave-layer-square wave-layer-square11"></div> <div class="wave-layer-square wave-layer-square12"></div> <div class="wave-layer-square wave-layer-square13"></div> <div class="wave-layer-square wave-layer-square14"></div> <div class="wave-layer-square wave-layer-square15"></div> </div> <div class="wave-layer"> <div class="wave-layer-square"></div> <div class="wave-layer-square"></div> <div class="wave-layer-square"></div> <div class="wave-layer-square"></div> <div class="wave-layer-square"></div> <div class="wave-layer-square"></div> <div class="wave-layer-square"></div> <div class="wave-layer-square"></div> <div class="wave-layer-square"></div> <div class="wave-layer-square"></div> <div class="wave-layer-square"></div> <div class="wave-layer-square"></div> <div class="wave-layer-square"></div> <div class="wave-layer-square"></div> <div class="wave-layer-square"></div> </div> </div>
.wave{ width: 100%; min-width: 100px; max-width: 300px; height: 30px; background: white; margin: auto; position: relative; box-shadow: inset 2px 2px 0 black, inset -2px -2px 0 black; } .wave-layer{ width: calc(100% - 10px); height: calc(100% - 10px); padding: 5px; position: absolute; top: 0; left: 0; display: flex; justify-content: space-between; align-items: center; } .wave-layer-square{ width: calc(100% / 15 - 2px); height: 4px; background: black; } .wave-layer-square1, .wave-layer-square2, .wave-layer-square3, .wave-layer-square4, .wave-layer-square5, .wave-layer-square6, .wave-layer-square7, .wave-layer-square8, .wave-layer-square9, .wave-layer-square10, .wave-layer-square11, .wave-layer-square12, .wave-layer-square13, .wave-layer-square14, .wave-layer-square15{ animation: wave-layer-square 3s infinite alternate; } @keyframes wave-layer-square{ 0%, 20%{ margin-top: 0; } 40%, 50%{ margin-top: 13px; } 60%, 70%{ margin-top: -13px; } 90%, 100%{ margin-top: 0; } } .wave-layer-square1{ animation-delay: 100ms; } .wave-layer-square2{ animation-delay: 150ms; } .wave-layer-square3{ animation-delay: 200ms; } .wave-layer-square4{ animation-delay: 250ms; } .wave-layer-square5{ animation-delay: 300ms; } .wave-layer-square6{ animation-delay: 350ms; } .wave-layer-square7{ animation-delay: 400ms; } .wave-layer-square8{ animation-delay: 450ms; } .wave-layer-square9{ animation-delay: 500ms; } .wave-layer-square10{ animation-delay: 600ms; } .wave-layer-square11{ animation-delay: 650ms; } .wave-layer-square12{ animation-delay: 700ms; } .wave-layer-square13{ animation-delay: 750ms; } .wave-layer-square14{ animation-delay: 800ms; } .wave-layer-square15{ animation-delay: 850ms; }