پیشنمایش زنده
کد HTML
<div class="loader">
<div class="box">
<div class="top-side"></div>
<div class="bottom-side"></div>
<div class="screen">
<div class="lightray-limit">
<div class="lightray"></div>
</div>
<div class="loader-box">
<div class="progress"></div>
</div>
</div>
</div>
</div>
کد CSS
.loader .box {
background-color: rgb(84, 84, 84);
width: 220px;
height: 220px;
padding: 20px;
border-radius: 50%;
border: 5px solid gray;
position: relative;
overflow: hidden;
box-shadow: 3px 4px 5px rgb(193, 193, 193);
transform: rotate(-45deg);
}
.loader .box .screen {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%) rotate(45deg);
background-color: black;
width: calc(100% - 40px);
height: calc(100% - 40px);
border-radius: 50%;
padding: 10px;
overflow: hidden;
}
.screen .lightray-limit {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: calc(100% - 20px);
height: calc(100% - 20px);
overflow: hidden;
border-radius: 50%;
}
.screen .lightray {
position: absolute;
left: 0;
top: 0;
transform: translate(-50%, -50%);
width: 250%;
height: 250%;
background-image: radial-gradient(#ffffffa1, transparent, transparent);
border-radius: 50% 10px 0 0;
}
.screen .loader-box {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 70%;
padding: 5px;
border: 5px solid #fff;
}
.screen .loader-box .progress {
width: 0;
height: 5px;
background-color: #fff;
animation: progress 5s infinite;
}
.top-side {
position: absolute;
width: 100%;
height: 50%;
top: 50px;
left: 50%;
transform: translate(-50%, -50%);
box-shadow: 0 10px 10px #1f1f1f8a;
background-color: #1f1f1f8a;
}
.bottom-side {
position: absolute;
width: 100%;
height: 50%;
top: calc(100% + 60px);
left: 50%;
transform: translate(-50%, -100%);
box-shadow: 0 -15px 20px #a5a5a5;
background-color: #a5a5a5;
}
@keyframes progress {
from {
width: 0;
}
to {
width: 100%;
}
}