Opt etichete div (cu rol de strat) cu alte opt etichete div in interior compun in cea mai mare parte acest banner animat. Mai exact, "straturile" sunt animate iar efectul este obtinut prin durata animatiei.
<div class="circles"> <div class="circles-area"> <div class="circles-layer"> <div class="circles-layer-circle circles-layer-circle1"></div> <div class="circles-layer-circle circles-layer-circle2"></div> <div class="circles-layer-circle circles-layer-circle3"></div> <div class="circles-layer-circle circles-layer-circle4"></div> <div class="circles-layer-circle circles-layer-circle5"></div> <div class="circles-layer-circle circles-layer-circle6"></div> <div class="circles-layer-circle circles-layer-circle7"></div> <div class="circles-layer-circle circles-layer-circle8"></div> </div> <div class="circles-layer"> <div class="circles-layer-circle circles-layer-circle1"></div> <div class="circles-layer-circle circles-layer-circle2"></div> <div class="circles-layer-circle circles-layer-circle3"></div> <div class="circles-layer-circle circles-layer-circle4"></div> <div class="circles-layer-circle circles-layer-circle5"></div> <div class="circles-layer-circle circles-layer-circle6"></div> <div class="circles-layer-circle circles-layer-circle7"></div> <div class="circles-layer-circle circles-layer-circle8"></div> </div> <div class="circles-layer"> <div class="circles-layer-circle circles-layer-circle1"></div> <div class="circles-layer-circle circles-layer-circle2"></div> <div class="circles-layer-circle circles-layer-circle3"></div> <div class="circles-layer-circle circles-layer-circle4"></div> <div class="circles-layer-circle circles-layer-circle5"></div> <div class="circles-layer-circle circles-layer-circle6"></div> <div class="circles-layer-circle circles-layer-circle7"></div> <div class="circles-layer-circle circles-layer-circle8"></div> </div> <div class="circles-layer"> <div class="circles-layer-circle circles-layer-circle1"></div> <div class="circles-layer-circle circles-layer-circle2"></div> <div class="circles-layer-circle circles-layer-circle3"></div> <div class="circles-layer-circle circles-layer-circle4"></div> <div class="circles-layer-circle circles-layer-circle5"></div> <div class="circles-layer-circle circles-layer-circle6"></div> <div class="circles-layer-circle circles-layer-circle7"></div> <div class="circles-layer-circle circles-layer-circle8"></div> </div> <div class="circles-layer"> <div class="circles-layer-circle circles-layer-circle1"></div> <div class="circles-layer-circle circles-layer-circle2"></div> <div class="circles-layer-circle circles-layer-circle3"></div> <div class="circles-layer-circle circles-layer-circle4"></div> <div class="circles-layer-circle circles-layer-circle5"></div> <div class="circles-layer-circle circles-layer-circle6"></div> <div class="circles-layer-circle circles-layer-circle7"></div> <div class="circles-layer-circle circles-layer-circle8"></div> </div> <div class="circles-layer"> <div class="circles-layer-circle circles-layer-circle1"></div> <div class="circles-layer-circle circles-layer-circle2"></div> <div class="circles-layer-circle circles-layer-circle3"></div> <div class="circles-layer-circle circles-layer-circle4"></div> <div class="circles-layer-circle circles-layer-circle5"></div> <div class="circles-layer-circle circles-layer-circle6"></div> <div class="circles-layer-circle circles-layer-circle7"></div> <div class="circles-layer-circle circles-layer-circle8"></div> </div> <div class="circles-layer"> <div class="circles-layer-circle circles-layer-circle1"></div> <div class="circles-layer-circle circles-layer-circle2"></div> <div class="circles-layer-circle circles-layer-circle3"></div> <div class="circles-layer-circle circles-layer-circle4"></div> <div class="circles-layer-circle circles-layer-circle5"></div> <div class="circles-layer-circle circles-layer-circle6"></div> <div class="circles-layer-circle circles-layer-circle7"></div> <div class="circles-layer-circle circles-layer-circle8"></div> </div> <div class="circles-layer"> <div class="circles-layer-circle circles-layer-circle1"></div> <div class="circles-layer-circle circles-layer-circle2"></div> <div class="circles-layer-circle circles-layer-circle3"></div> <div class="circles-layer-circle circles-layer-circle4"></div> <div class="circles-layer-circle circles-layer-circle5"></div> <div class="circles-layer-circle circles-layer-circle6"></div> <div class="circles-layer-circle circles-layer-circle7"></div> <div class="circles-layer-circle circles-layer-circle8"></div> </div> </div> <div class="circles-txt"> <span>BANNER TEXT</span> </div> </div>
.circles,
.circles-txt{
display: flex;
}
.circles,
.circles-area{
height: 200px;
overflow: hidden;
position: relative;
}
.circles{
width: 100%;
min-width: 100px;
max-width: 1000px;
background: rgba(0,0,0,0.1);
margin: auto;
}
.circles-area{
width: 200px;
}
.circles-layer{
width: calc(100% - 20px);
height: calc(100% - 20px);
padding: 10px;
transform: rotate(0);
position: absolute;
animation-timing-function: ease-in-out;
animation-iteration-count: infinite;
animation-direction: alternate;
}
.circles-layer:nth-child(1){
transform: rotate(0.1turn);
}
.circles-layer:nth-child(2){
transform: rotate(0.2turn);
animation-name: circles-layer2;
animation-duration: 3s;
}
@keyframes circles-layer2{
to{
transform: rotate(0.25turn);
}
}
.circles-layer:nth-child(3){
transform: rotate(0.3turn);
animation-name: circles-layer3;
animation-duration: 4.5s;
}
@keyframes circles-layer3{
to{
transform: rotate(0.375turn);
}
}
.circles-layer:nth-child(4){
transform: rotate(0.4turn);
animation-name: circles-layer4;
animation-duration: 6s;
}
@keyframes circles-layer4{
to{
transform: rotate(0.5turn);
}
}
.circles-layer:nth-child(5){
transform: rotate(0.5turn);
animation-name: circles-layer5;
animation-duration: 7.5s;
}
@keyframes circles-layer5{
to{
transform: rotate(0.625turn);
}
}
.circles-layer:nth-child(6){
transform: rotate(0.6turn);
animation-name: circles-layer6;
animation-duration: 9s;
}
@keyframes circles-layer6{
to{
transform: rotate(0.75turn);
}
}
.circles-layer:nth-child(7){
transform: rotate(0.7turn);
animation-name: circles-layer7;
animation-duration: 10.5s;
}
@keyframes circles-layer7{
to{
transform: rotate(0.875turn);
}
}
.circles-layer:nth-child(8){
transform: rotate(0.8turn);
animation-name: circles-layer8;
animation-duration: 12s;
}
@keyframes circles-layer8{
to{
transform: rotate(1turn);
}
}
.circles-layer-circle{
width: calc(50% - 10px);
height: calc(50% - 10px);
background: rgba(0, 0, 0, 0.05);
border: 5px solid whitesmoke;
border-radius: 50%;
margin: auto;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
.circles-layer-circle1{}
.circles-layer-circle2{
transform: translate(50%, -50%);
}
.circles-layer-circle3{
transform: translate(-50%, -150%);
}
.circles-layer-circle4{
transform: translate(0, -200%);
}
.circles-layer-circle5{
transform: translate(40%, -390%);
}
.circles-layer-circle6{
transform: translate(40%, -410%);
}
.circles-layer-circle7{
transform: translate(-40%, -510%);
}
.circles-layer-circle8{
transform: translate(-40%, -690%);
}
.circles-txt{
width: calc(100% - 200px - 20px);
padding: 10px;
justify-content: center;
align-items: center;
}
.circles-txt > span{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}