纯Css实现加载动画效果

    技术2022-07-15  64

    效果:

                

    代码实现: 

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Loading</title> <style> * { margin: 0em; padding: 0em; } .loader { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -moz-transform: translate(-50%, -50%); -mos-transform: translate(-50%, -50%); -o-transform: translate(-50%, -50%); transform: translate(-50%, -50%); text-align: center; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; cursor: default; } .text { position: absolute; left: -1.3em; top: -1.7em; -webkit-animation: text 2s infinite; -moz-animation: text 2s infinite; -moz-animation: text 2s infinite; -ms-animation: text 2s infinite; -o-animation: text 2s infinite; animation: text 2s infinite; } .horizontal { position: absolute; top: 0em; left: 0em; -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); -o-transform: rotate(0deg); transform: rotate(0deg); } .circlesup { position: absolute; top: -4.7em; right: 12.1em; } .circle { position: absolute; width: 15em; height: 15em; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -ms-transform: rotate(45deg); -o-transform: rotate(45deg); transform: rotate(45deg); -webkit-animation: orbit 2s infinite; -moz-animation: orbit 2s infinite; -moz-animation: orbit 2s infinite; -ms-animation: orbit 2s infinite; -o-animation: orbit 2s infinite; animation: orbit 2s infinite; z-index: 5; } .circle:after { content: ''; position: absolute; width: 2em; height: 2em; -webkit-border-radius: 100%; -moz-border-radius: 100%; -ms-border-radius: 100%; -o-border-radius: 100%; border-radius: 100%; background: #17b2f0; } .circle:nth-child(2) { -webkit-animation-delay: 100ms; -moz-animation-delay: 100ms; -ms-animation-delay: 100ms; -o-animation-delay: 100ms; animation-delay: 100ms; z-index: 4; } .circle:nth-child(2):after { background: #59b9e0; -webkit-transform: scale(0.8, 0.8); -moz-transform: scale(0.8, 0.8); -ms-transform: scale(0.8, 0.8); -o-transform: scale(0.8, 0.8); transform: scale(0.8, 0.8); } .circle:nth-child(3) { -webkit-animation-delay: 225ms; -moz-animation-delay: 225ms; -ms-animation-delay: 225ms; -o-animation-delay: 225ms; animation-delay: 225ms; z-index: 3; } .circle:nth-child(3):after { background: #ffa489; -webkit-transform: scale(0.6, 0.6); -moz-transform: scale(0.6, 0.6); -ms-transform: scale(0.6, 0.6); -o-transform: scale(0.6, 0.6); transform: scale(0.6, 0.6); } .circle:nth-child(4) { -webkit-animation-delay: 350ms; -moz-animation-delay: 350ms; -ms-animation-delay: 350ms; -o-animation-delay: 350ms; animation-delay: 350ms; z-index: 2; } .circle:nth-child(4):after { background: #ff6d37; -webkit-transform: scale(0.4, 0.4); -moz-transform: scale(0.4, 0.4); -ms-transform: scale(0.4, 0.4); -o-transform: scale(0.4, 0.4); transform: scale(0.4, 0.4); } .circle:nth-child(5) { -webkit-animation-delay: 475ms; -moz-animation-delay: 475ms; -ms-animation-delay: 475ms; -o-animation-delay: 475ms; animation-delay: 475ms; z-index: 1; } .circle:nth-child(5):after { background: #DB2F00; -webkit-transform: scale(0.2, 0.2); -moz-transform: scale(0.2, 0.2); -ms-transform: scale(0.2, 0.2); -o-transform: scale(0.2, 0.2); transform: scale(0.2, 0.2); } .circlesdwn { position: absolute; top: 2.5em; right: -13.5em; -webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); -ms-transform: rotate(180deg); -o-transform: rotate(180deg); transform: rotate(180deg); } .vertical { position: absolute; top: -1.84em; left: -0.4em; -webkit-transform: rotate(90deg); -moz-transform: rotate(90deg); -ms-transform: rotate(90deg); -o-transform: rotate(90deg); transform: rotate(90deg); } @-webkit-keyframes text { 0% { transform: scale(.2, .2); animation-timing-function: ease-out; } 50% { transform: scale(1, 1); animation-timing-function: ease-out; } 60% { transform: scale(1, 1); animation-timing-function: ease-out; } 100% { transform: scale(.2, .2); } } @keyframes text { 0% { transform: scale(.2, .2); animation-timing-function: ease-out; } 50% { transform: scale(1, 1); animation-timing-function: ease-out; } 60% { transform: scale(1, 1); animation-timing-function: ease-out; } 100% { transform: scale(.2, .2); } } @-webkit-keyframes orbit { 0% { transform: rotate(45deg); } 5% { transform: rotate(45deg); animation-timing-function: ease-out; } 70% { transform: rotate(405deg); animation-timing-function: ease-in; } 100% { transform: rotate(405deg); } } @keyframes orbit { 0% { transform: rotate(45deg); } 5% { transform: rotate(45deg); animation-timing-function: ease-out; } 70% { transform: rotate(405deg); animation-timing-function: ease-in; } 100% { transform: rotate(405deg); } } #content { width: 100%; height: 100%; opacity: 0; transition: opacity 0.5s; } #content iframe { width: 100%; height: -webkit-fill-available; } </style> </head> <body> <div class="loader" id="loader"> <div class="text">Loading...</div> <div class="horizontal"> <div class="circlesup"> <div class="circle"></div> <div class="circle"></div> <div class="circle"></div> <div class="circle"></div> <div class="circle"></div> </div> <div class="circlesdwn"> <div class="circle"></div> <div class="circle"></div> <div class="circle"></div> <div class="circle"></div> <div class="circle"></div> </div> </div> <div class="vertical"> <div class="circlesup"> <div class="circle"></div> <div class="circle"></div> <div class="circle"></div> <div class="circle"></div> <div class="circle"></div> </div> <div class="circlesdwn"> <div class="circle"></div> <div class="circle"></div> <div class="circle"></div> <div class="circle"></div> <div class="circle"></div> </div> </div> </div> <div id="content"> <iframe src="//www.albertyy.com"></iframe> </div> </body> <script> document.onreadystatechange = loadingChange; //当页面加载状态改变的时候执行这个方法. function loadingChange() { if (document.readyState == "complete") { //当页面加载状态为完全结束时进入 document.getElementById("loader").style.display = "none"; document.getElementById("content").style.opacity = 1; } } </script> </html>

     

    Processed: 0.012, SQL: 9