Maison interface Web tutoriel HTML CSS3动画实现loading加载图标_html/css_WEB-ITnose

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>
Copier après la connexion

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);
Copier après la connexion

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); }}
Copier après la connexion

版权声明:本文为博主原创文章,未经博主允许不得转载。

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

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? 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? Mar 04, 2025 pm 12:32 PM

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 utiliser les attributs de validation du formulaire HTML5 pour valider l'entrée utilisateur? Mar 17, 2025 pm 12:27 PM

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? Comment ajouter efficacement les effets de course aux images PNG sur les pages Web? Mar 04, 2025 pm 02:39 PM

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? Quel est le but du & lt; mètre & gt; élément? Mar 21, 2025 pm 12:35 PM

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

Quelles sont les meilleures pratiques pour la compatibilité entre les navigateurs dans HTML5? Quelles sont les meilleures pratiques pour la compatibilité entre les navigateurs dans HTML5? Mar 17, 2025 pm 12:20 PM

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; iframe & gt; étiqueter? Quelles sont les considérations de sécurité lorsque vous l'utilisez? Mar 20, 2025 pm 06:05 PM

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? Quel est le but du & lt; datalist & gt; élément? Mar 21, 2025 pm 12:33 PM

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? Comment utiliser le html5 & lt; time & gt; élément pour représenter les dates et les temps sémantiquement? Mar 12, 2025 pm 04:05 PM

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

See all articles