Как оживить заполнение HTML-элемента

0

Поэтому проблема заключается в том, что я пытаюсь оживить заполнение элемента html круга. Круг начинается серым цветом, пользователь будет указывать номер, и круг изменит цвет, добавив еще один синий круг в проценты от исходного круга, указанного пользователем. Мне трудно понять, как оживить или создать заполнение синего круга.

HTML

<div class="circle circle-outer-border">
    <div class="circle circle-background">
        <div class="circle circle-fill"></div>
    </div>
</div>

CSS

.circle{
  height: 200px;
  width: 200px;
  -moz-border-radius: 100px;
  -webkit-border-radius: 100px;
}

.circle-outer-border{
  border: 1px solid black;
}

.circle-background{
  border: 20px solid #b1b1b1;
  background-color: transparent;
  margin-left: -1px; margin-top: -1px /** to make up for outer-border        margin**/
}

.circle-fill{
  border: 20px solid #147fc3;
  background-color: transparent;
  margin-left: -21px; margin-top: -21px;
}

Таким образом, у меня есть 3 круга, один для только черной границы, тот, который показывает только серая рамка, а третья - это третий круг, который я буду анимировать, чтобы действовать как "синяя заливка". Я уложил их сверху друг от друга, чтобы дать ему эффект заполнения набора. Опять же, я просто не уверен, как сделать анимацию, есть ли способ показать часть синего круга и постоянно показывать больше, пока не покажет весь синий круг? Спасибо вам за помощь. Я пишу это в приложении angularjs, но еще не написал код angularjs.

Теги:
css-transitions

1 ответ

0
Лучший ответ

Я немного упростил ваше решение. Вместо 3 DIVs всего 2.

Внешний DIV рисует круг и говорит, что "мои дети не могут переливаться".

Внутренний DIV - это простой прямоугольник. Он тот, который вы оживляете, начиная со дна и двигая его вверх и вниз.

Точно так же, как смотреть иллюминатор на лодке!

.circle{
  height: 200px;
  width: 200px;
}
.circle-outer-border{
  position: relative;
  border: 1px solid black;
  border-radius: 100px;
  -moz-border-radius: 100px;
  -webkit-border-radius: 100px;
  overflow: hidden;
}

.circle-fill{
  position: absolute;
  top: 0;
  left: 0;
  background-color: #147fc3;
}

.animated .circle-fill {
  -webkit-animation: fillerup 5s infinite;
  animation: fillerup 5s infinite;
}
.static .circle-fill {
  top: 150px;
}

@-webkit-keyframes fillerup {
  0% {
    top: 200px;
  }
  100% {
    top: 0px;
  }
}
@keyframes fillerup {
  0% {
    top: 200px;
  }
  100% {
    top: 0;
  }
}
<div class="circle circle-outer-border animated">
  <div class="circle circle-fill"></div>
</div>
<br/>
<div class="circle circle-outer-border static">
  <div class="circle circle-fill"></div>
</div>
  • 0
    Если не понятно, что я делаю, удалите overflow: hidden; смотреть с «другой точки зрения».
  • 0
    отличный ответ! Я смог использовать это с моим Javascript, и он работал как шарм
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню