Показать результаты
loading1
loading2loading1
Подготовьте серую округлую фоновую рамку по центру, просто для хорошего вида.
<div class="loading-box">
</div>
.loading-box {
overflow: hidden;
width: 100px;
height: 100px;
margin: 50px auto;
background: #d8d8d8;
border-radius: 5px;
}
Поместите loading1 и три дочерних элемента в качестве трех прыгающих элементов в loading1.
<div class="loading-box">
<div class="loading1">
<div class="loading1-item1"></div>
<div class="loading1-item2"></div>
<div class="loading1-item3"></div>
</div>
</div>
Центрировать загрузку1 вверх и вниз через margin-top и указать высоту и встроенные элементы для центрирования влево и вправо
.loading1 {
height: 34px;
margin-top: 33px;
text-align: center;
}
Затем установите общий стиль для трех элементов и дайте им выровняться по встроенному блоку.
.loading1-item1, .loading1-item2, .loading1-item3 {
display: inline-block;
width: 16px;
height: 16px;
background: #4b9cdb;
border-radius: 15px;
}
Напишите анимацию, очень просто, просто увеличьте высоту элемента, а затем верните ее обратно.
@keyframes loading1-run {
0% {
height: 16px;
}
50% {
height: 34px;
}
100% {
height: 16px;
}
}
Добавьте письменную анимацию к трем элементам, два пункта:
Один из них - установить задержку 0 с, 0,5 с, 1 с для трех элементов соответственно.
Во-вторых, установить Infinite (воспроизведение цикла анимации)
.loading1-item1 {
animation: loading1-run 1.5s ease 0s infinite;
}
.loading1-item2 {
animation: loading1-run 1.5s ease 0.5s infinite;
}
.loading1-item3 {
animation: loading1-run 1.5s ease 1s infinite;
}
Заканчивать
Многословно, в коде задается только изменение длины, почему эта анимация, кажется, имеет эффект подпрыгивания вверх и вниз? И при изменении высоты элемента элемент должен как бы растягиваться сверху вниз, а не так, как будто низ фиксируется в анимации, а потом растет вверх и потом меняется обратно.
Причина в выравнивании встроенного блока, три элемента выравниваются по умолчанию по базовой линии. Когда первая анимация в 0 начинает становиться высокой, следующие два элемента, не начавшие анимацию, также перемещаются вниз вместе с базовой линией первого элемента.После этого каждый раз, когда элемент просто возвращается в исходное положение, всегда происходит Один элемент становится выше, поэтому каждый элемент выглядит так, как будто дно зафиксировано, и становится выше, а короткий промежуток в изменении создает эффект подпрыгивания.
loading2
Подготовьте серую округлую фоновую рамку по центру, просто для хорошего вида.
<div class="loading-box">
</div>
.loading-box {
overflow: hidden;
width: 100px;
height: 100px;
margin: 50px auto;
background: #d8d8d8;
border-radius: 5px;
}
Поместите loading2 и четыре дочерних элемента в качестве четырех повернутых элементов в load2.
<div class="loading-box">
<div class="loading2">
<div class="loading2-item1"></div>
<div class="loading2-item2"></div>
<div class="loading2-item3"></div>
<div class="loading2-item4"></div>
</div>
</div>
Установите длину и ширину загрузки2 и отцентрируйте ее вверх, вниз, влево и вправо через поле
.loading2 {
position: relative;
width: 46px;
height: 46px;
margin: 27px auto 0 auto;
}
Установите общий стиль четырех элементов
.loading2-item1,
.loading2-item2,
.loading2-item3,
.loading2-item4 {
width: 16px;
height: 16px;
border-radius: 100%;
background: red;
}
Благодаря абсолютному позиционированию четыре элемента позиционируются в положение центра круга с серединой четырех сторон, и добавляются разные цвета.
.loading2-item1 {
position: absolute;
top: -8px;
left: 50%;
margin-left: -8px;
background: #CDDC39;
}
.loading2-item2 {
position: absolute;
right: -8px;
top: 50%;
margin-top: -8px;
background: #3F51B5;
}
.loading2-item3 {
position: absolute;
bottom: -8px;
left: 50%;
margin-left: -8px;
background: #F44336;
}
.loading2-item4 {
position: absolute;
left: -8px;
top: 50%;
margin-top: -8px;
background: #4CAF50;
}
Пишите анимации, вращайте на 360 градусов
@keyframes loading2-run {
0% {
transform: rotate(0deg);
}
25% {
transform: rotate(90deg);
}
50% {
transform: rotate(180deg);
}
75% {
transform: rotate(270deg);
}
100% {
transform: rotate(360deg);
}
}
Добавьте анимацию в load2, используйте лайнер (линейную анимацию) и продолжайте играть в цикле.
.loading2 {
position: relative;
width: 46px;
height: 46px;
margin: 27px auto 0 auto;
animation: loading2-run 2s linear 0s infinite;
}
Заканчивать