CSS круг граница заливка анимация
У меня есть css-файл, который отлично делает анимацию заполнения границ круга. Его ширина и высота 100px. Но мне нужен только круг шириной и высотой 50px с той же анимацией. Я еще много раз пытался минимизировать размер, но круг не получился правильно зафиксирован анимацией. пожалуйста, помогите мне уменьшить этот круг. Моя потребность: Ширина-50px Высота -50 пикселей размер границы в соответствии с прилагаемым файлом изображения - круг границы заливки образца изображения
Мой код
#loading
{
width: 100px;
height: 100px;
margin: 30px auto;
position: relative;
}
.outer-shadow, .inner-shadow
{
z-index: 4;
position: absolute;
width: 100%;
height: 100%;
border-radius: 100%;
box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.5);
}
.inner-shadow
{
top: 50%;
left: 50%;
width: 80px;
height: 80px;
margin-left: -40px;
margin-top: -40px;
border-radius: 100%;
background-color: #ffffff;
box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.5);
}
.hold
{
position: absolute;
width: 100%;
height: 100%;
clip: rect(0px, 100px, 100px, 50px);
border-radius: 100%;
background-color: #fff;
}
.fill, .dot span
{
background-color: #f50;
}
.fill
{
position: absolute;
width: 100%;
height: 100%;
border-radius: 100%;
clip: rect(0px, 50px, 100px, 0px);
}
.left .fill
{
z-index: 1;
-webkit-animation: left 1s linear ;
-moz-animation: left 1s linear ;
animation: left 1s linear both;
}
@keyframes left
{
0%{-webkit-transform:rotate(0deg);}
100%{transform:rotate(180deg);}
}
@-webkit-keyframes left
{
0%{-webkit-transform:rotate(0deg);}
100%{-webkit-transform:rotate(180deg);}
}
.right
{
z-index: 3;
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
transform: rotate(180deg);
}
.right .fill
{
z-index: 3;
-webkit-animation: right 1s linear ;
-moz-animation: right 1s linear ;
animation: right 1s linear both ;
-webkit-animation-delay: 1s;
-moz-animation-delay: 1s;
animation-delay: 1s;
}
@keyframes right
{
0%{-webkit-transform:rotate(0deg);}
100%{transform:rotate(180deg);}
}
@-webkit-keyframes right
{
0% {transform: rotate(0deg);}
100% {transform: rotate(180deg);}
}
Мой код в jsfiddle...!
2 ответа:
Вам нужно разделить на 2 все задействованные значения, даже клип (); единицы (скрипка обновлена)
#loading { width: 50px; height: 50px; margin: 30px auto; position: relative; } .outer-shadow, .inner-shadow { z-index: 4; position: absolute; width: 100%; height: 100%; border-radius: 100%; box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.5); } .inner-shadow { top: 50%; left: 50%; width: 40px; height: 40px; margin-left: -20px; margin-top: -20px; border-radius: 100%; background-color: #ffffff; box-shadow: 1px 1px 1px 1px rgba(0, 0, 0, 0.5); } .hold { position: absolute; width: 100%; height: 100%; clip: rect(0px, 50px, 50px, 25px); border-radius: 100%; background-color: #fff; } .fill, .dot span { background-color: #f50; } .fill { position: absolute; width: 100%; height: 100%; border-radius: 100%; clip: rect(0px, 25px, 50px, 0px); } .left .fill { z-index: 1; -webkit-animation: left 1s linear; -moz-animation: left 1s linear; animation: left 1s linear both; } @keyframes left { 0% { -webkit-transform: rotate(0deg); } 100% { transform: rotate(180deg); } } @-webkit-keyframes left { 0% { -webkit-transform: rotate(0deg); } 100% { -webkit-transform: rotate(180deg); } } .right { z-index: 3; -webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); transform: rotate(180deg); } .right .fill { z-index: 3; -webkit-animation: right 1s linear; -moz-animation: right 1s linear; animation: right 1s linear both; -webkit-animation-delay: 1s; -moz-animation-delay: 1s; animation-delay: 1s; } @keyframes right { 0% { -webkit-transform: rotate(0deg); } 100% { transform: rotate(180deg); } } @-webkit-keyframes right { 0% { transform: rotate(0deg); } 100% { transform: rotate(180deg); } } .inner-shadow img { margin-left: 8px; margin-top: 7px; }
<div id='loading'> <div class='outer-shadow'> </div> <div class='inner-shadow'> </div> <div class='hold left'> <div class='fill'></div> </div> <div class='hold right'> <div class='fill'></div> </div> </div>
Это то, что вы ожидаете, надеюсь, это поможет вам.попробовать это.Меня волновал только размер круга 50 px с внутренним кругом.если это не так, скажите мне.
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>jquery</title> <style type="text/css"> div.circleone{ width: 50px; height: 50px; border-radius: 25px; box-shadow: 1px 2px 1px black; } div.circletwo { width: 25px; height: 25px; border-radius: 12.5px; box-shadow: 1px -1px 1px black; position: relative; top: 25%; left: 25%; } </style> </head> <body> <div class="circleone"> <div class="circletwo"></div> </div> </body> </html>