CSS3动画实现loading加载图标_html/css_WEB-ITnose
Jun 24, 2016 am 11:39 AM
CSS3动画实现loading加载图标,并利用JavaScript封装成插件,方便以后调用。
index.html
<!DOCTYPE html><html lang="zh-cn"><head> <meta charset="utf-8"> <meta content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" name="viewport"> <meta content="yes" name="apple-mobile-web-app-capable"> <meta content="black" name="apple-mobile-web-app-status-bar-style"> <meta content="telephone=no" name="format-detection"> <meta content="email=no" name="format-detection"> <title>Spinner</title> <link rel="stylesheet" href="./css/main.css"></head><body> <script src="./js/spinner.js"></script> <script> window.onload = function(){ spinner.show(); } </script></body></html>
spinner.js
(function(exports){ var document = exports.document, mask = createDivWithClassName('spinner-mask'), box = createDivWithClassName('spinner-box'), spinner = createDivWithClassName('spinner'), spinner_container_1 = createDivWithClassName('spinner-container'), spinner_container_2, spinner_container_3, circle_1 = createDivWithClassName('circle1'), circle_2 = createDivWithClassName('circle2'), circle_3 = createDivWithClassName('circle3'), circle_4 = createDivWithClassName('circle4'); spinner_container_1.appendChild(circle_1); spinner_container_1.appendChild(circle_2); spinner_container_1.appendChild(circle_3); spinner_container_1.appendChild(circle_4); spinner_container_2 = spinner_container_1.cloneNode(true); spinner_container_3 = spinner_container_1.cloneNode(true); spinner_container_1.className += ' container1'; spinner_container_2.className += ' container2'; spinner_container_3.className += ' container3'; spinner.appendChild(spinner_container_1); spinner.appendChild(spinner_container_2); spinner.appendChild(spinner_container_3); box.appendChild(spinner); document.body.appendChild(mask); document.body.appendChild(box); var self = Object.create(null); self.show = function(){ mask.style.display = box.style.display = 'block'; }; self.hide = function(){ mask.style.display = box.style.display = 'none'; }; Object.seal(self); Object.freeze(self); Object.preventExtensions(self); exports.spinner = self; function createDivWithClassName(classname){ var div = document.createElement('div'); div.setAttribute('class', classname); return div; } })(window);
main.css
html, body{ width: 100%; height: 100%; margin: 0; padding: 0; overflow-x: hidden; overflow-y: auto; }.spinner-mask{ width: 100%; height: 100%; position: fixed; left: 0; top: 0; background-color: transparent; display: none; }.spinner-box{ width: 60px; height: 60px; position: fixed; top: 50%; left: 0; right: 0; margin: 0 auto; background-color: #666; border-radius: 4px; -webkit-transform: translateY(-50%); transform: translateY(-50%); display: none; }.spinner{ width: 20px; height: 20px; position: absolute; top: 50%; left: 0; right: 0; margin: 0 auto; -webkit-transform: translateY(-50%); transform: translateY(-50%); }.container1>div, .container2>div, .container3>div{ width: 6px; height: 6px; background-color: #eee; border-radius: 50%; position: absolute; -webkit-animation: bouncedelay 1.2s infinite ease-in-out; animation: bouncedelay 1.2s infinite ease-in-out; -webkit-animation-fill-mode: both; animation-fill-mode: both; }.spinner .spinner-container{ width: 100%; height: 100%; position: absolute; }.container2{ -webkit-transform: rotateZ(45deg); transform: rotateZ(45deg); }.container3{ -webkit-transform: rotateZ(90deg); transform: rotateZ(90deg); }.circle1{ left: 0; top: 0; }.circle2{ right: 0; top: 0; }.circle3{ right: 0; bottom: 0; }.circle4{ left: 0; bottom: 0; }.container1 .circle1{ -webkit-animation-delay: -1.2s; animation-delay: -1.2s; }.container2 .circle1{ -webkit-animation-delay: -1.1s; animation-delay: -1.1s; }.container3 .circle1{ -webkit-animation-delay: -1.0s; animation-delay: -1.0s; }.container1 .circle2{ -webkit-animation-delay: -0.9s; animation-delay: -0.9s; }.container2 .circle2{ -webkit-animation-delay: -0.8s; animation-delay: -0.8s; }.container3 .circle2{ -webkit-animation-delay: -0.7s; animation-delay: -0.7s; }.container1 .circle3{ -webkit-animation-delay: -0.6s; animation-delay: -0.6s; }.container2 .circle3{ -webkit-animation-delay: -0.5s; animation-delay: -0.5s; }.container3 .circle3{ -webkit-animation-delay: -0.4s; animation-delay: -0.4s; }.container1 .circle4{ -webkit-animation-delay: -0.3s; animation-delay: -0.3s; }.container2 .circle4{ -webkit-animation-delay: -0.2s; animation-delay: -0.2s; }.container3 .circle4{ -webkit-animation-delay: -0.1s; animation-delay: -0.1s; }@-webkit-keyframes bouncedelay{ 0%, 100%{ -webkit-transform: scale(0); transform: scale(0); } 50%{ -webkit-transform: scale(1); transform: scale(1); }}@keyframes bouncedelay{ 0%, 100%{ -webkit-transform: scale(0); transform: scale(0); } 50%{ -webkit-transform: scale(1); transform: scale(1); }}
版权声明:本文为博主原创文章,未经博主允许不得转载。

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Difficulté à mettre à jour la mise en cache des pages Web officielles du compte: comment éviter l'ancien cache affectant l'expérience utilisateur après la mise à jour de la version?

Comment utiliser les attributs de validation du formulaire HTML5 pour valider l'entrée utilisateur?

Comment ajouter efficacement les effets de course aux images PNG sur les pages Web?

Quel est le but du & lt; mètre & gt; élément?

Quelles sont les meilleures pratiques pour la compatibilité entre les navigateurs dans HTML5?

Quel est le but du & lt; iframe & gt; étiqueter? Quelles sont les considérations de sécurité lorsque vous l'utilisez?

Quel est le but du & lt; datalist & gt; élément?

Comment utiliser le html5 & lt; time & gt; élément pour représenter les dates et les temps sémantiquement?
