framework7-without-localstorage
Version:
Full featured mobile HTML framework for building iOS & Android apps
297 lines (291 loc) • 6.54 kB
text/less
/* === Progress Bar === */
.progressbar, .progressbar-infinite {
height: 4px;
width: 100%;
overflow: hidden;
display: block;
position: relative;
.transform-origin(center bottom);
background: rgba(red(@themeColor), green(@themeColor), blue(@themeColor), 0.5);
}
// Determined
.progressbar {
display: block;
vertical-align: middle;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
span {
content: '';
width: 100%;
background: @themeColor;
height: 100%;
position: absolute;
left: 0;
top: 0;
.translate3d(-100%, 0, 0);
.transition(150ms);
}
}
// Infinite
.progressbar-infinite {
z-index: 15000;
&:before, &:after {
content: '';
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: @themeColor;
.transform-origin(left center);
}
&:before {
.animation(progressbar-infinite-1 2s linear infinite);
}
&:after {
.animation(progressbar-infinite-2 2s linear infinite);
}
html.with-statusbar-overlay body > &, html.with-statusbar-overlay .framework7-root > & {
top: 24px;
}
html.with-statusbar-overlay.ios body > &, html.with-statusbar-overlay.ios .framework7-root > & {
top: 20px;
}
}
// Multicolor
.progressbar-infinite.color-multi {
background: none ;
&:before, &:after {
width: 100%;
animation: none;
}
&:before {
background: none;
.animation(progressbar-infinite-multicolor-bg 3s step-end infinite);
}
&:after {
background: none;
.animation(progressbar-infinite-multicolor-fill 3s linear infinite);
.transform-origin(center center);
}
}
body, .view, .views, .page, .panel, .popup, .framework7-root {
> .progressbar, > .progressbar-infinite {
position: absolute;
left: 0;
top: 0;
z-index: 15000;
.transform-origin(center top);
}
}
// Animations
.progressbar-in {
.animation(progressbar-in 300ms forwards);
}
.progressbar-out {
.animation(progressbar-out 300ms forwards);
}
html.with-statusbar-overlay body > .progressbar, html.with-statusbar-overlay .framework7-root > .progressbar {
top: 24px;
}
html.with-statusbar-overlay.ios body > .progressbar, html.with-statusbar-overlay.ios .framework7-root > .progressbar {
top: 20px;
}
@-webkit-keyframes progressbar-in {
from {
opacity: 0;
-webkit-transform: scaleY(0);
}
to {
opacity: 1;
-webkit-transform: scaleY(1);
}
}
@keyframes progressbar-in {
from {
opacity: 0;
transform: scaleY(0);
}
to {
opacity: 1;
transform: scaleY(1);
}
}
@-webkit-keyframes progressbar-out {
from {
opacity: 1;
-webkit-transform: scaleY(1);
}
to {
opacity: 0;
-webkit-transform: scaleY(0);
}
}
@keyframes progressbar-out {
from {
opacity: 1;
transform: scaleY(1);
}
to {
opacity: 0;
transform: scaleY(0);
}
}
@-webkit-keyframes progressbar-infinite-1 {
0% {
-webkit-transform: translateX(-10%) scaleX(0.1);
}
25% {
-webkit-transform: translateX(30%) scaleX(0.6);
}
50% {
-webkit-transform: translateX(100%) scaleX(1);
}
100% {
-webkit-transform: translateX(100%) scaleX(1);
}
}
@keyframes progressbar-infinite-1 {
0% {
transform: translateX(-10%) scaleX(0.1);
}
25% {
transform: translateX(30%) scaleX(0.6);
}
50% {
transform: translateX(100%) scaleX(1);
}
100% {
transform: translateX(100%) scaleX(1);
}
}
@-webkit-keyframes progressbar-infinite-2 {
0% {
-webkit-transform: translateX(-100%) scaleX(1);
}
40% {
-webkit-transform: translateX(-100%) scaleX(1);
}
75% {
-webkit-transform: translateX(60%) scaleX(0.35);
}
90% {
-webkit-transform: translateX(100%) scaleX(0.1);
}
100% {
-webkit-transform: translateX(100%) scaleX(0.1);
}
}
@keyframes progressbar-infinite-2 {
0% {
transform: translateX(-100%) scaleX(1);
}
40% {
transform: translateX(-100%) scaleX(1);
}
75% {
transform: translateX(60%) scaleX(0.35);
}
90% {
transform: translateX(100%) scaleX(0.1);
}
100% {
transform: translateX(100%) scaleX(0.1);
}
}
@-webkit-keyframes progressbar-infinite-multicolor-bg {
0% {
background-color: @green;
}
25% {
background-color: @red;
}
50% {
background-color: @blue;
}
75% {
background-color: @yellow;
}
}
@keyframes progressbar-infinite-multicolor-bg {
0% {
background-color: @green;
}
25% {
background-color: @red;
}
50% {
background-color: @blue;
}
75% {
background-color: @yellow;
}
}
@-webkit-keyframes progressbar-infinite-multicolor-fill {
0% {
-webkit-transform: scaleX(0);
background-color: @red;
}
24.9% {
-webkit-transform: scaleX(1);
background-color: @red;
}
25% {
-webkit-transform: scaleX(0);
background-color: @blue;
}
49.9% {
-webkit-transform: scaleX(1);
background-color: @blue;
}
50% {
-webkit-transform: scaleX(0);
background-color: @yellow;
}
74.9% {
-webkit-transform: scaleX(1);
background-color: @yellow;
}
75% {
-webkit-transform: scaleX(0);
background-color: @green;
}
100% {
-webkit-transform: scaleX(1);
background-color: @green;
}
}
@keyframes progressbar-infinite-multicolor-fill {
0% {
transform: scaleX(0);
background-color: @red;
}
24.9% {
transform: scaleX(1);
background-color: @red;
}
25% {
transform: scaleX(0);
background-color: @blue;
}
49.9% {
transform: scaleX(1);
background-color: @blue;
}
50% {
transform: scaleX(0);
background-color: @yellow;
}
74.9% {
transform: scaleX(1);
background-color: @yellow;
}
75% {
transform: scaleX(0);
background-color: @green;
}
100% {
transform: scaleX(1);
background-color: @green;
}
}