Inaltimea cablului si deplasarea stanga dreapta al etichetei container cu aceste elemente a reprezentat o mica provocare de sincronizare pentru a reusi acest efect. Restul este HTML si CSS.
<div class="build"> <div class="build-stage"> <div class="build-stage-top"> <div class="build-stage-layer"> <div class="build-stage-sun"></div> <div class="build-stage-cloud"> <div class="build-stage-cloud1"></div> <div class="build-stage-cloud2"></div> </div> </div> <div class="build-stage-layer"> <div class="build-stage-building"> <div class="build-stage-building-area"> <div class="build-stage-building-area-top-area"> <div class="build-stage-building-area-top-area1"></div> <div class="build-stage-building-area-top-area2"></div> </div> <div class="build-stage-building-area-body"> <div class="build-stage-building-area-body-left"> <div class="build-stage-building-area-body-left-window"> <div class="build-stage-building-area-body-left-window-line"></div> <div class="build-stage-building-area-body-left-window-line"></div> </div> <div class="build-stage-building-area-body-left-window"> <div class="build-stage-building-area-body-left-window-line"></div> <div class="build-stage-building-area-body-left-window-line"></div> </div> <div class="build-stage-building-area-body-left-window"> <div class="build-stage-building-area-body-left-window-line"></div> <div class="build-stage-building-area-body-left-window-line"></div> </div> <div class="build-stage-building-area-body-left-window"> <div class="build-stage-building-area-body-left-window-line"></div> <div class="build-stage-building-area-body-left-window-line"></div> </div> <div class="build-stage-building-area-body-left-window"> <div class="build-stage-building-area-body-left-window-line"></div> <div class="build-stage-building-area-body-left-window-line"></div> </div> <div class="build-stage-building-area-body-left-window"> <div class="build-stage-building-area-body-left-window-line"></div> <div class="build-stage-building-area-body-left-window-line"></div> </div> <div class="build-stage-building-area-body-left-window"> <div class="build-stage-building-area-body-left-window-line"></div> <div class="build-stage-building-area-body-left-window-line"></div> </div> <div class="build-stage-building-area-body-left-window"> <div class="build-stage-building-area-body-left-window-line"></div> <div class="build-stage-building-area-body-left-window-line"></div> </div> <div class="build-stage-building-area-body-left-window"> <div class="build-stage-building-area-body-left-window-line"></div> <div class="build-stage-building-area-body-left-window-line"></div> </div> <div class="build-stage-building-area-body-left-window"> <div class="build-stage-building-area-body-left-window-line"></div> <div class="build-stage-building-area-body-left-window-line"></div> </div> <div class="build-stage-building-area-body-left-window"> <div class="build-stage-building-area-body-left-window-line"></div> <div class="build-stage-building-area-body-left-window-line"></div> </div> </div> <div class="build-stage-building-area-body-middle"> <div class="build-stage-building-area-body-middle-window"> <div class="build-stage-building-area-body-middle-window1"></div> </div> <div class="build-stage-building-area-body-middle-window"> <div class="build-stage-building-area-body-middle-window1"></div> </div> <div class="build-stage-building-area-body-middle-window"> <div class="build-stage-building-area-body-middle-window1"></div> </div> <div class="build-stage-building-area-body-middle-window"> <div class="build-stage-building-area-body-middle-window1"></div> </div> <div class="build-stage-building-area-body-middle-window"> <div class="build-stage-building-area-body-middle-window1"></div> </div> <div class="build-stage-building-area-body-middle-window"> <div class="build-stage-building-area-body-middle-window1"></div> </div> <div class="build-stage-building-area-body-middle-window"> <div class="build-stage-building-area-body-middle-window1"></div> </div> <div class="build-stage-building-area-body-middle-window"> <div class="build-stage-building-area-body-middle-window1"></div> </div> <div class="build-stage-building-area-body-middle-window"> <div class="build-stage-building-area-body-middle-window1"></div> </div> <div class="build-stage-building-area-body-middle-window"> <div class="build-stage-building-area-body-middle-window1"></div> </div> <div class="build-stage-building-area-body-middle-window"> <div class="build-stage-building-area-body-middle-window1"></div> </div> </div> <div class="build-stage-building-area-body-right"> <div class="build-stage-building-area-body-right-area"> <div class="build-stage-building-area-body-right-area1"> <div class="build-stage-building-area-body-right-area1-space"> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> </div> </div> <div class="build-stage-building-area-body-right-area1"> <div class="build-stage-building-area-body-right-area1-space"> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> </div> </div> <div class="build-stage-building-area-body-right-area1"> <div class="build-stage-building-area-body-right-area1-space"> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> </div> </div> <div class="build-stage-building-area-body-right-area1"> <div class="build-stage-building-area-body-right-area1-space"> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> </div> </div> <div class="build-stage-building-area-body-right-area1"> <div class="build-stage-building-area-body-right-area1-space"> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> </div> </div> <div class="build-stage-building-area-body-right-area1"> <div class="build-stage-building-area-body-right-area1-space"> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> </div> </div> <div class="build-stage-building-area-body-right-area1"> <div class="build-stage-building-area-body-right-area1-space"> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> </div> </div> <div class="build-stage-building-area-body-right-area1"> <div class="build-stage-building-area-body-right-area1-space"> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> </div> </div> <div class="build-stage-building-area-body-right-area1"> <div class="build-stage-building-area-body-right-area1-space"> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> </div> </div> <div class="build-stage-building-area-body-right-area1"> <div class="build-stage-building-area-body-right-area1-space"> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> <div class="build-stage-building-area-body-right-area1-window"></div> </div> </div> <div class="build-stage-building-area-body-right-area1-doors"> <div class="build-stage-building-area-body-right-area1-doors-area"> <div class="build-stage-building-area-body-right-area1-door1"> <div class="build-stage-building-area-body-right-area1-door1-handle"></div> </div> <div class="build-stage-building-area-body-right-area1-door2"> <div class="build-stage-building-area-body-right-area1-door2-windows"> <div class="build-stage-building-area-body-right-area1-door2-window"></div> <div class="build-stage-building-area-body-right-area1-door2-window"></div> </div> </div> <div class="build-stage-building-area-body-right-area1-door1"> <div class="build-stage-building-area-body-right-area1-door1-handle"></div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="build-stage-top-crane-area"> <div class="build-stage-top-crane-area-v"> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> </div> <div class="build-stage-top-crane-area-h"> <div class="build-stage-top-crane-area-line build-stage-top-crane-area-line-cancel"> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> <div class="build-stage-top-crane-area-line"> <div class="build-stage-top-crane-area-line1"></div> <div class="build-stage-top-crane-area-line2"></div> </div> </div> <div class="build-stage-top-crane-area-base"> <div class="build-stage-top-crane-area-base1"></div> <div class="build-stage-top-crane-area-base2"></div> </div> <div class="build-stage-top-crane-area-squares"> <div class="build-stage-top-crane-area-squares1"></div> <div class="build-stage-top-crane-area-squares2"> <div class="build-stage-top-crane-area-squares2-sq"></div> </div> </div> <div class="build-stage-top-crane-area-move"> <div class="build-stage-top-crane-area-move-cable"></div> <div class="build-stage-top-crane-area-move-iron"></div> <div class="build-stage-top-crane-area-move-lines"> <div class="build-stage-top-crane-area-move-line1"></div> <div class="build-stage-top-crane-area-move-line2"></div> </div> <div class="build-stage-top-crane-area-move-weight">☢</div> </div> </div> </div> <div class="build-stage-layer"> <div class="build-stage-fog"></div> </div> </div> <div class="build-stage-bottom"></div> </div> </div>
.build{
width: 100%;
min-width: 100px;
max-width: 500px;
margin: auto;
overflow: auto;
}
.build-stage{
height: 300px;
background: #83c6d5;
transition: 1s;
animation: build-stage 10s alternate infinite;
}
@keyframes build-stage{
100%{
filter: sepia(100%);
}
}
.build-stage:hover{
filter: sepia(100%);
}
.build-stage-top{
height: 276px;
position: relative;
overflow: hidden;
z-index: 1;
}
.build-stage-layer{
width: 100%;
height: 100%;
display: flex;
position: absolute;
top: 0;
left: 0;
}
.build-stage-layer:first-of-type{
display: block;
z-index: 2;
}
.build-stage-sun{
width: 50px;
height: 50px;
background: yellow;
border-radius: 50%;
box-shadow: 0 0 50px yellow;
margin: 15px auto;
}
.build-stage-cloud{
width: 60px;
height: 30px;
overflow: hidden;
position: absolute;
top: 15px;
left: -60px;
animation: build-stage-cloud 100s infinite;
}
.build-stage-cloud *{
background: white;
border-radius: 50%;
position: relative;
}
@keyframes build-stage-cloud{
100%{
left: 100%;
}
}
.build-stage-cloud1{
width: 20px;
height: 20px;
top: 17px;
}
.build-stage-cloud2{
width: 45px;
height: 50px;
top: -15px;
left: 15px;
}
.build-stage-layer:nth-child(2){
z-index: 3;
}
.build-stage-building{
width: calc(100% - 250px);
}
.build-stage-building-area{
width: 100px;
margin: 10px auto;
}
.build-stage-building-area-top-area{}
.build-stage-building-area-top-area1{
height: 7px;
background: #5a5b58;
}
.build-stage-building-area-top-area2{
height: 7px;
background: #f0f0e6;
border-bottom: 2px solid #585855;
}
.build-stage-building-area-body{
height: calc(100% - 10px - 14px - 10px);
border-bottom: 8px solid #363739;
display: flex;
}
.build-stage-building-area-body-left{
width: 25px;
background: #cacccc;
}
.build-stage-building-area-body-left-window{
width: 10px;
padding: 2px;
margin: 7px auto;
background: #fff;
}
.build-stage-building-area-body-left-window-line{
height: 4px;
background: #302f34;
}
.build-stage-building-area-body-left-window-line:last-of-type{
margin-top: 2px;
}
.build-stage-building-area-body-middle{
width: 20px;
background: #ce874b;
}
.build-stage-building-area-body-middle-window{
width: 10px;
padding: 2px;
background: #ebe3d7;
margin: 7px auto;
}
.build-stage-building-area-body-middle-window1{
height: 10px;
background: #2f2e31;
}
.build-stage-building-area-body-right{
width: calc(100% - 15px - 10px);
background: #cacdcc;
}
.build-stage-building-area-body-right-area{
width: calc(100% - 12px);
height: calc(100% - 2px - 7px);
padding: 2px;
margin: 5px auto;
background: #f1f1e7;
}
.build-stage-building-area-body-right-area1{
height: 12px;
background: #5c5c5a;
margin: auto;
margin-bottom: 9px;
display: flex;
justify-content: center;
align-items: flex-end;
}
.build-stage-building-area-body-right-area1-space{
width: calc(100% - 2px - 6px);
padding: 2px 2px 0 2px;
background: #e4e2d9;
display: flex;
justify-content: space-between;
}
.build-stage-building-area-body-right-area1-window{
width: calc(100% / 3 - 1px);
height: 8px;
background: #2e2e35;
}
.build-stage-building-area-body-right-area1-doors{
width: calc(100% - 4px);
height: 20px;
padding: 2px 2px 0 2px;
background: #5c5d5a;
}
.build-stage-building-area-body-right-area1-doors-area{
width: calc(100% - 4px);
height: calc(100% - 2px);
padding: 2px 2px 0 2px;
background: #e9e7e5;
display: flex;
justify-content: space-between;
}
.build-stage-building-area-body-right-area1-door1,
.build-stage-building-area-body-right-area1-door2{
width: calc(100% / 3 - 4px - 2px);
height: calc(100% - 4px - 1px);
padding: 2px;
}
.build-stage-building-area-body-right-area1-door1{
background: #2e2e32;
display: flex;
align-items: center;
}
.build-stage-building-area-body-right-area1-door1-handle{
width: 2px;
height: 4px;
background: #5e5e5e;
}
.build-stage-building-area-body-right-area1-door2{
background: #5c5d5a;
}
.build-stage-building-area-body-right-area1-door2-windows{
width: 4px;
height: calc(100% - 4px);
padding: 1px 2px;
}
.build-stage-building-area-body-right-area1-door2-window{
width: calc(100% - 2px);
height: calc(100% / 2 - 2px);
border: 1px solid #d0d0cc;
background: #312f31;
margin-bottom: 2px;
}
.build-stage-building-area-body-right-area1-door2-window:last-of-type{
margin-bottom: 0;
}
.build-stage-layer:nth-child(3){}
.build-stage-top-crane-area{
width: 250px;
position: relative;
}
.build-stage-top-crane-area-v{
width: 20px;
height: calc(100% - 20px);
position: absolute;
right: 40px;
top: 2px;
}
.build-stage-top-crane-area-line{
width: 16px;
height: 16px;
border: 2px solid black;
position: relative;
}
.build-stage-top-crane-area-line-cancel{
width: 18px;
height: 18px;
border-top: 0px solid black;
border-left: 0px solid black;
}
.build-stage-top-crane-area-line-cancel > .build-stage-top-crane-area-line2{
height: 26px;
top: -3px;
}
.build-stage-top-crane-area-line1,
.build-stage-top-crane-area-line2{
width: 2px;
height: 24px;
background: black;
position: absolute;
top: -4px;
right: 7px;
}
.build-stage-top-crane-area-line1{
transform: rotate(-45deg);
}
.build-stage-top-crane-area-line2{
transform: rotate(45deg);
}
.build-stage-top-crane-area-h{
width: 200px;
height: 20px;
margin-top: 22px;
display: flex;
position: absolute;
right: 0;
}
.build-stage-top-crane-area-base{
width: 40px;
height: 14px;
position: absolute;
right: 30px;
bottom: 0;
}
.build-stage-top-crane-area-base1,
.build-stage-top-crane-area-base2{
height: 3px;
border: 2px solid black;
background: #414141;
}
.build-stage-top-crane-area-base1{
width: 30px;
margin: auto;
}
.build-stage-top-crane-area-base2{
width: calc(100% - 4px);
}
.build-stage-top-crane-area-squares{
width: 130px;
height: 16px;
display: flex;
position: absolute;
top: 42px;
right: 60px;
}
.build-stage-top-crane-area-squares1,
.build-stage-top-crane-area-squares2,
.build-stage-top-crane-area-squares2-sq{
border: 2px solid black;
}
.build-stage-top-crane-area-squares1{
width: calc(100% - 4px - 16px);
height: 4px;
background: #414141;
}
.build-stage-top-crane-area-squares2{
width: 12px;
height: 12px;
background: #ee9219;
display: flex;
justify-content: center;
align-items: center;
}
.build-stage-top-crane-area-squares2-sq{
width: 4px;
height: 4px;
background: white;
}
.build-stage-top-crane-area-move{
width: 60px;
position: absolute;
top: 50px;
right: 80px;
animation: build-move-h 20s infinite;
}
@keyframes build-move-h{
10%{right:80px;}
20%{right:80px;}
30%{right:150px;}
40%{right:150px;}
50%{right:150px;}
60%{right:150px;}
70%{right:150px;}
80%{right:80px;}
90%{right:80px;}
100%{right:80px;}
}
.build-stage-top-crane-area-move-cable{
width: 2px;
height: 163px;
background: #414141;
margin: auto;
animation: build-move-v 20s infinite;
}
@keyframes build-move-v{
10%{height:163px;}
20%{height:100px;}
30%{height:100px;}
40%{height:100px;}
50%{height:163px;}
60%{height:163px;}
70%{height:100px;}
80%{height:100px;}
90%{height:100px;}
100%{height:163px;}
}
.build-stage-top-crane-area-move-iron,
.build-stage-top-crane-area-move-weight{
border: 2px solid #414141;
}
.build-stage-top-crane-area-move-iron{
width: 10px;
height: 15px;
background: #4f4c52;
margin: auto;
}
.build-stage-top-crane-area-move-lines{
height: 20px;
position: relative;
}
.build-stage-top-crane-area-move-line1,
.build-stage-top-crane-area-move-line2{
width: 2px;
height: 30px;
background: #414141;
position: absolute;
top: -5px;
}
.build-stage-top-crane-area-move-line1{
transform: rotate(45deg);
left: 12px;
}
.build-stage-top-crane-area-move-line2{
transform: rotate(-45deg);
right: 12px;
}
.build-stage-top-crane-area-move-weight{
width: calc(100% - 4px);
height: 20px;
background: #ee9219;
font-size: 18px;
display: flex;
justify-content: center;
align-items: center;
}
.build-stage-layer:last-of-type{
align-items: flex-end;
z-index: 4;
}
.build-stage-fog{
width: 100%;
height: 0;
background: linear-gradient(rgba(255,255,255,0), rgba(255,255,255,0.5));
filter: blur(2px);
animation: build-stage-fog 10s alternate infinite;
}
@keyframes build-stage-fog{
100%{
height: 70px;
}
}
.build-stage-bottom{
width: calc(100% - 4px);
height: 20px;
border: 2px solid black;
background: #ee9219;
}