300 lines
4.6 KiB
SCSS
300 lines
4.6 KiB
SCSS
$thickness : 5px;
|
|
$duration : 2500;
|
|
$delay : $duration/6;
|
|
$background: #222222;
|
|
|
|
@mixin polka($size, $dot, $base, $accent){
|
|
background: $base;
|
|
background-image: radial-gradient($accent $dot, transparent 0);
|
|
background-size:$size $size;
|
|
background-position: 0 -2.5px;
|
|
}
|
|
|
|
.loader {
|
|
margin: 0;
|
|
|
|
display: block;
|
|
position: fixed;
|
|
top: 0;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
|
|
z-index: 900;
|
|
text-align: center;
|
|
}
|
|
|
|
.loader .half {
|
|
position: fixed;
|
|
background: #222222;
|
|
top: 0;
|
|
bottom: 0;
|
|
width: 50%;
|
|
height: 100%;
|
|
}
|
|
|
|
.loader .half.right {
|
|
right: 0;
|
|
}
|
|
.loader .half.left {
|
|
left: 0;
|
|
}
|
|
|
|
.bookshelf_wrapper {
|
|
position: relative;
|
|
top: 40%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
}
|
|
|
|
.books_list {
|
|
margin: 0 auto;
|
|
width: 300px;
|
|
padding: 0;
|
|
}
|
|
|
|
.book_item {
|
|
position: absolute;
|
|
top: -120px;
|
|
box-sizing: border-box;
|
|
list-style: none;
|
|
width: 40px;
|
|
height: 120px;
|
|
opacity: 0;
|
|
background-color: #1e6cc7;
|
|
border: $thickness solid white;
|
|
transform-origin: bottom left;
|
|
transform: translateX(300px);
|
|
animation: travel #{$duration}ms linear infinite;
|
|
|
|
&.first {
|
|
top: -140px;
|
|
height: 140px;
|
|
|
|
&:before,
|
|
&:after {
|
|
content:'';
|
|
position: absolute;
|
|
top: 10px;
|
|
left: 0;
|
|
width: 100%;
|
|
height: $thickness;
|
|
background-color: white;
|
|
}
|
|
|
|
&:after {
|
|
top: initial;
|
|
bottom: 10px;
|
|
}
|
|
}
|
|
|
|
&.second,
|
|
&.fifth {
|
|
&:before,
|
|
&:after {
|
|
box-sizing: border-box;
|
|
content:'';
|
|
position: absolute;
|
|
top: 10px;
|
|
left: 0;
|
|
width: 100%;
|
|
height: $thickness*3.5;
|
|
border-top: $thickness solid white;
|
|
border-bottom: $thickness solid white;
|
|
}
|
|
|
|
&:after {
|
|
top: initial;
|
|
bottom: 10px;
|
|
}
|
|
}
|
|
|
|
&.third {
|
|
&:before,
|
|
&:after {
|
|
box-sizing: border-box;
|
|
content:'';
|
|
position: absolute;
|
|
top: 10px;
|
|
left: 9px;
|
|
width: 12px;
|
|
height: 12px;
|
|
border-radius: 50%;
|
|
border: $thickness solid white;
|
|
}
|
|
|
|
&:after {
|
|
top: initial;
|
|
bottom: 10px;
|
|
}
|
|
}
|
|
|
|
&.fourth {
|
|
top: -130px;
|
|
height: 130px;
|
|
|
|
&:before {
|
|
box-sizing: border-box;
|
|
content:'';
|
|
position: absolute;
|
|
top: 46px;
|
|
left: 0;
|
|
width: 100%;
|
|
height: $thickness*3.5;
|
|
border-top: $thickness solid white;
|
|
border-bottom: $thickness solid white;
|
|
}
|
|
}
|
|
|
|
&.fifth {
|
|
top: -100px;
|
|
height: 100px;
|
|
}
|
|
|
|
&.sixth {
|
|
top: -140px;
|
|
height: 140px;
|
|
|
|
&:before {
|
|
box-sizing: border-box;
|
|
content:'';
|
|
position: absolute;
|
|
bottom: 31px;
|
|
left: 0px;
|
|
width: 100%;
|
|
height: $thickness;
|
|
background-color: white;
|
|
}
|
|
|
|
&:after {
|
|
box-sizing: border-box;
|
|
content:'';
|
|
position: absolute;
|
|
bottom: 10px;
|
|
left: 9px;
|
|
width: 12px;
|
|
height: 12px;
|
|
border-radius: 50%;
|
|
border: $thickness solid white;
|
|
}
|
|
}
|
|
|
|
&:nth-child(2) {
|
|
animation-delay: #{$delay*1}ms;
|
|
}
|
|
|
|
&:nth-child(3) {
|
|
animation-delay: #{$delay*2}ms;
|
|
}
|
|
|
|
&:nth-child(4) {
|
|
animation-delay: #{$delay*3}ms;
|
|
}
|
|
|
|
&:nth-child(5) {
|
|
animation-delay: #{$delay*4}ms;
|
|
}
|
|
|
|
&:nth-child(6) {
|
|
animation-delay: #{$delay*5}ms;
|
|
}
|
|
|
|
}
|
|
|
|
.shelf {
|
|
width: 300px;
|
|
height: $thickness;
|
|
margin: 0 auto;
|
|
background-color: white;
|
|
position: relative;
|
|
|
|
&:before,
|
|
&:after {
|
|
content:'';
|
|
position : absolute;
|
|
width: 100%;
|
|
height: 100%;
|
|
@include polka(10px, 30%, $background, rgba(255,255,255,0.5));
|
|
top: 200%;
|
|
left: 5%;
|
|
animation: move #{$duration/10}ms linear infinite;
|
|
}
|
|
|
|
&:after {
|
|
top: 400%;
|
|
left: 7.5%;
|
|
}
|
|
|
|
}
|
|
|
|
@keyframes move {
|
|
|
|
from {
|
|
background-position-x: 0;
|
|
}
|
|
|
|
to {
|
|
background-position-x: 10px;
|
|
}
|
|
|
|
}
|
|
|
|
@keyframes travel {
|
|
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateX(300px) rotateZ(0deg) scaleY(1);
|
|
}
|
|
|
|
6.5% {
|
|
transform: translateX(279.5px) rotateZ(0deg) scaleY(1.1);
|
|
}
|
|
|
|
8.8% {
|
|
transform: translateX(273.6px) rotateZ(0deg) scaleY(1);
|
|
}
|
|
|
|
10% {
|
|
opacity: 1;
|
|
transform: translateX(270px) rotateZ(0deg);
|
|
}
|
|
|
|
17.6% {
|
|
transform: translateX(247.2px) rotateZ(-30deg);
|
|
}
|
|
|
|
45% {
|
|
transform: translateX(165px) rotateZ(-30deg);
|
|
}
|
|
|
|
49.5% {
|
|
transform: translateX(151.5px) rotateZ(-45deg);
|
|
}
|
|
|
|
61.5% {
|
|
transform: translateX(115.5px) rotateZ(-45deg);
|
|
}
|
|
|
|
67% {
|
|
transform: translateX(99px) rotateZ(-60deg);
|
|
}
|
|
|
|
76% {
|
|
transform: translateX(72px) rotateZ(-60deg);
|
|
}
|
|
|
|
83.5% {
|
|
opacity: 1;
|
|
transform: translateX(49.5px) rotateZ(-90deg);
|
|
}
|
|
|
|
90% {
|
|
opacity: 0;
|
|
}
|
|
|
|
100% {
|
|
opacity: 0;
|
|
transform: translateX(0px) rotateZ(-90deg);
|
|
}
|
|
|
|
} |