纯CSS实现十个相当不错的加载效果
时间:2023-03-17 19:50:33
科技观察
看T.Afif[1]在推特上介绍的十个加载效果。如上所示。嗯,很棒,很实用,所以记录下来。为了保证正常运行,我们先规定:*{box-sizing:border-box;}1.平滑加载
.progress-1{width:120px;高度:20px;背景:线性渐变(#00000)0/0%不重复#ddd;animation:p12sinfinitelinear;}@keyframesp1{100%{background-size:100%}}linear-gradient(#00000)你可以理解为linear-gradient(#0000100%),如果你不熟悉的,copylinear-gradient(#000050%,#f0050%0),替换原来的部分运行。如果你觉得linear-gradient(#00000)很别扭,直接写#000就可以了。0/0%是background-position:0;/background-size:0;的简写.2.逐步加载
.progress-2{width:120px;高度:20px;边界半径:20px;背景:线性渐变(橙色00)0/0%不重复浅蓝色;animation:p22sinfinitesteps(10);}@keyframesp2{100%{background-size:110%}}steps(10)是step(10,end)的简写,表示开头没有,所以有第二点处理100%{background-size:110%}再加一个步长百分比,上面的步长是10,所以就是100%+(1/10)*100%=110%3。条纹加载
.progress-3{width:120px;高度:20px;边界半径:20px;背景:重复线性渐变(135deg,#f03355010px,#ffa516020px)0/0%不重复,重复线性渐变(135deg,#ddd010px,#eee020px)0/100%;动画:p32s无限;}@keyframesp3{100%{background-size:100%}}repeating-linear-gradient(135deg,#ddd010px,#eee020px)0/100%;绘制灰色斑马条纹,repeating-linear-gradient(135deg,#f03355010px,#ffa516020px)0/0%no-repeat为进度条加载条纹。4.虚线加载
.progress-4{width:120px;高度:20px;-webkit-mask:linear-gradient(90deg,#00070%,#00000)0/20%;背景:线性渐变(#00000)0/0%不重复#ddd;animation:p42sinfinitesteps(6);}@keyframesp4{100%{background-size:120%}}-webkit-mask默认值为repeat,否则不会有五个mask。5.池加载