Il s'agit du deuxième article conçu par CSS Loading
. En fait, beaucoup de contenu est inclus dans le premier article, il y aura donc relativement moins d'introduction aux attributs dans cet article. Si vous ne comprenez pas les attributs, veuillez vous référer au contenu de l'article précédent.
Chargement CSS (1)
De cette façon, ce n'est pas le cas ressemble à n'importe quoiAnimation, si je veux le montrer ici, je dois enregistrer la vidéo avec l'écran, puis la convertir en image Cela me semble trop gênant. Je ne sais pas s'il existe un moyen simple. Si c'est le cas, faites-le-moi savoir. Bon, voyons comment créer cet effet d'animation. Tout d'abord, jetons un œil au code Html
<p class="box"> <p class="loader"> <i></i> <i></i> <i></i> </p> </p>
. . Jetons un coup d'œil au p
code CSS
.box { width: 100%; padding: 3%; } .loader { width: 30%; height: 200px; margin: 50px auto; border: 1px solid chocolate; box-sizing: border-box; display: flex; align-items: center; justify-content: center; position: relative; } .loader i { width: 60px; height: 60px; border-radius: 50%; background-color: #333333; position: absolute; opacity:0; }
@-webkit-keyframes loading { 0%{ transform: scale(0); opacity: 0; } 5%{ opacity: 1; } 100%{ transform: scale(1); opacity:0; } }
1. 0% : 这个时候将我们画的圆形缩放为 0%,透明度也是 0 2. 5% : 这个时候将透明度设置为 1 ,也就是图形是出于可见的状态, 但是这个时候图形已经被缩放为 0,所以还是什么东西都看不到。 3. 100% : 注意在 100 % 的状态下,图形被缩放为原始状态,但是透明度为0,这说明了什么? 这说明在 5% - 100% 过程中,图形逐渐出现,但是透明度逐渐降低,这样就会出现一个动画效果。
. i
.loader i:nth-child(1){ -webkit-animation: loading 1s linear 0s infinite; } .loader i:nth-child(2){ -webkit-animation: loading 1s linear 0.2s infinite; } .loader i:nth-child(3){ -webkit-animation: loading 1s linear 0.4s infinite; }
Html
<p class="box"> <p class="loader"> <p class="loader-child"> <i></i> <i></i> </p> </p> </p>
ici est un peu différent de celui ci-dessus CSS
.box { width: 100%; padding: 3%; } .loader { width: 30%; height: 200px; margin: 50px auto; border: 1px solid chocolate; box-sizing: border-box; display: flex; align-items: center; justify-content: center; } .loader-child { width: 40px; height: 40px; position: relative; } .loader-child i { display: block; border: 2px solid #333333; border-color: transparent #333333; border-radius: 50%; position: absolute; } .loader-child i:first-child { width: 35px; height: 35px; top: 0; left: 0; -webkit-animation: loading 1s ease-in-out 0s infinite; } .loader-child i:last-child { width: 15px; height: 15px; top: 10px; left: 10px; -webkit-animation: loading 1s ease-in-out 0.5s infinite reverse; }
À l'origine, nous devions dessiner un cercle. Puisque ce dont nous avons besoin n'est pas un cercle, après avoir défini cette ligne d'attributs, l'attribut de couleur sera modifié tous les 1/4 d'arc. , c'est-à-dire Changer la transparence et border-color: transparent #333333;
pour obtenir l'effet graphique souhaité. #333333
pour chaque balise i
. Ces deux attributs doivent être utilisés conjointement avec top,left
. Nous avons également présenté comment l'utiliser dans l'article précédent. ces deux attributs, l'effet obtenu est qu'un grand cercle contient un petit cercle, ce qui est l'effet sur l'image. position
Nous avons ajouté un last-child
à la fin, ce qui signifie une exécution dans le sens inverse des aiguilles d'une montre. reverse
@-webkit-keyframes loading { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(0.6); } 100% { transform: rotate(360deg) scale(1); } }
aussi Cela ne fait que quelques jours, et je ne sais pas pourquoi de nombreux attributs sont définis. J'ai recherché diverses informations sur Internet, et je ne les comprends toujours pas bien. Maintenant, je vais partager ce que je sais. Quant à ces attributs dont je ne suis pas encore sûr, j'espère aussi que tous les grands immortels m'apprendront. C'est toujours la même chose qu'avant, jetons d'abord un coup d'œil au code CSS
HTML
<p class="box"> <p class="loader"> <p class="loader-child"> <i></i> <i></i> <i></i> <i></i> <i></i> </p> </p> </p>
incluses ici, principalement pour coopérer. avec l'utilisation de l'attribut p
. position
.box{ width: 100%; padding: 3%; } .loader{ width:30%; height: 200px; border: 1px solid chocolate; box-sizing: border-box; margin: 50px auto; display: flex; align-items: center; justify-content: center; } .loader-child{ width: 80px; height: 20px; position: relative; } .loader-child i{ display: block; width: 20px; height: 20px; border-radius: 50%; background-color: #333333; margin-right: 10px; position: absolute; }
, nous ne pouvons voir qu'un seul cercle, pas les 5 attendus. Est-ce que cela se produit ? Je n'en suis pas sûr non plus. i
@-webkit-keyframes loading { 0%{ left: 100px; top: 0; } 80%{ left:0; top:0; } 85%{ left:0px; top:-20px; width: 20px; height: 20px; } 90%{ width: 40px; height: 20px; } 95%{ left: 100px; top: -20px; width: 20px; height: 20px; } 100%{ left: 100px; top:0; } }
1. 0% - 80% : 图形从距离父元素左边距为 100 px 的位置移动到 0 px,上边距不变,也就是水平移动。 2. 80% - 85% : 图形的左边距不变,但是上移 20 px,而且图形的宽高设置为 20px 3. 85% - 90% : 图形的位置不变化,但是此时图形的宽拓宽到 40px 4. 90% - 95% : 图形开始向右移动,移动100 px并且将宽复原为 20px 5. 95% - 100% : 图形回到起始位置。
.loader-child i:nth-child(1){ -webkit-animation: loading 2s linear 0s infinite; } .loader-child i:nth-child(2){ -webkit-animation: loading 2s linear -0.4s infinite; } .loader-child i:nth-child(3){ -webkit-animation: loading 2s linear -0.8s infinite; } .loader-child i:nth-child(4){ -webkit-animation: loading 2s linear -1.2s infinite; } .loader-child i:nth-child(5){ -webkit-animation: loading 2s linear -1.6s infinite; }
Tutoriel vidéo CSS en ligne gratuit
2. 3.php.cn Dugu Jiujian (2) - tutoriel vidéo CSS
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!