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; }