[CSS Animation] PCPP Loading Boxes
02 июля 2017
Красивая и не слишком сложная анимация, например, для загрузочной страницы сайта.
HTML
<h1 class="intro">[CSS animation] PCPP Loading Boxes</h1> <div class="box"> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> <div class="cube"></div> </div>
CSS
.cube {
position: absolute;
width: 1em;
height: 1em;
background: #FED74C;
-webkit-animation: move 3s ease-in-out infinite;
animation: move 3s ease-in-out infinite;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
box-shadow: 5em 5em .3em .1em #DBDBDB;
}
.cube::before, .cube::after {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.cube::before {
background-color: #C97431;
-webkit-transform-origin: 100% 100%;
transform-origin: 100% 100%;
-webkit-transform: rotateY(-90deg);
transform: rotateY(-90deg);
}
.cube::after {
background-color: #E7A22B;
-webkit-transform-origin: 0% 100%;
transform-origin: 0% 100%;
-webkit-transform: rotateX(90deg);
transform: rotateX(90deg);
}
.cube:nth-of-type(1) {
-webkit-animation-delay: -11.25s;
animation-delay: -11.25s;
}
.cube:nth-of-type(2) {
-webkit-animation-delay: -10.5s;
animation-delay: -10.5s;
}
.cube:nth-of-type(3) {
-webkit-animation-delay: -9.75s;
animation-delay: -9.75s;
}
.cube:nth-of-type(4) {
-webkit-animation-delay: -9s;
animation-delay: -9s;
}
@-webkit-keyframes move {
0%,
87.5%,
100% {
-webkit-transform: translate(1em, 0em);
transform: translate(1em, 0em);
}
12.5% {
-webkit-transform: translate(2em, 0em);
transform: translate(2em, 0em);
}
25% {
-webkit-transform: translate(2em, 1em);
transform: translate(2em, 1em);
}
37.5%,
50% {
-webkit-transform: translate(1em, 1em);
transform: translate(1em, 1em);
}
62.5% {
-webkit-transform: translate(0em, 1em);
transform: translate(0em, 1em);
}
75% {
-webkit-transform: translate(0em, 0em);
transform: translate(0em, 0em);
}
}
@keyframes move {
0%,
87.5%,
100% {
-webkit-transform: translate(1em, 0em);
transform: translate(1em, 0em);
}
12.5% {
-webkit-transform: translate(2em, 0em);
transform: translate(2em, 0em);
}
25% {
-webkit-transform: translate(2em, 1em);
transform: translate(2em, 1em);
}
37.5%,
50% {
-webkit-transform: translate(1em, 1em);
transform: translate(1em, 1em);
}
62.5% {
-webkit-transform: translate(0em, 1em);
transform: translate(0em, 1em);
}
75% {
-webkit-transform: translate(0em, 0em);
transform: translate(0em, 0em);
}
}
.box {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 3em;
height: 2em;
margin: 30vmin auto;
font-size: 50px;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
-webkit-transform: rotateX(60deg) rotateZ(45deg);
transform: rotateX(60deg) rotateZ(45deg);
}
.box:hover * {
-webkit-animation-play-state: paused;
animation-play-state: paused;
}
.box:active * {
-webkit-animation-play-state: running;
animation-play-state: running;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
html {
height: 100%;
}
body {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
min-height: 100%;
margin: 0;
line-height: 1.4;
}
.intro {
width: 90%;
max-width: 50rem;
padding-top: .5em;
padding-bottom: 1rem;
margin: 0 auto 1em;
font-size: calc(1rem + 2vmin);
text-transform: capitalize;
text-align: center;
font-family: serif;
border-bottom: 1px dashed rgba(0, 0, 0, 0.5);
}
.info {
margin: auto 0 0;
padding: 1em;
font-size: .9em;
font-style: italic;
font-family: serif;
text-align: right;
opacity: .5;
}
.info a {
color: inherit;
}
Готовый пример:
See the Pen [CSS Animation] PCPP Loading Boxes by Denis (@deniscreative) on CodePen.
Фиксированное меню при прокрутке страницы
Один из множества примеров сделать фиксированное меню при прокрутке. Пример упрощен, потому что хедер изначально…
Вертикальные параллакс-эффекты при прокрутке страницы с помощью Stellar.js
Делаем параллакс-эффект для больших блоков с фоном и для отдельных элементов на сайте. Подключаем jQuery…
Полезные ссылки для вебмастеров
Ссылки на ресурсы, которые я использую в своей работе. Это мои реферальные ссылки, плохого не…
Открытие новых вкладок скриптом
Появилась необходимость сделать открытие дополнительной вкладки в браузере без желания на то пользователя. Технически сделать…