ng-repeat-fast
Version:
Faster ng-repeat realization that caches DOM nodes.
507 lines (506 loc) • 9.94 kB
CSS
@keyframes star-wars {
0% {
transform: translate3d(0, 0, -100px);
opacity: 0;
}
100% {
transform: translate3d(0, 0, 0);
opacity: 1;
}
}
@-webkit-keyframes star-wars {
0% {
transform: translate3d(0, 0, -100px);
opacity: 0;
}
100% {
transform: translate3d(0, 0, 0);
opacity: 1;
}
}
@-moz-keyframes star-wars {
0% {
transform: translate3d(0, 0, -100px);
opacity: 0;
}
100% {
transform: translate3d(0, 0, 0);
opacity: 1;
}
}
@keyframes slide-from-bottom {
0% {
transform: translateY(2000px);
}
100% {
transform: translateY(0);
}
}
@-webkit-keyframes slide-from-bottom {
0% {
transform: translateY(2000px);
}
100% {
transform: translateY(0);
}
}
@-moz-keyframes slide-from-bottom {
0% {
transform: translateY(2000px);
}
100% {
transform: translateY(0);
}
}
@keyframes slide-from-top {
0% {
transform: translateY(-500px);
}
100% {
transform: translateY(0);
}
}
@-webkit-keyframes slide-from-top {
0% {
transform: translateY(-500px);
}
100% {
transform: translateY(0);
}
}
@-moz-keyframes slide-from-top {
0% {
transform: translateY(-500px);
}
100% {
transform: translateY(0);
}
}
@keyframes opacity {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-webkit-keyframes opacity {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-moz-keyframes opacity {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes shift-left-to-right {
0% {
transform: translateX(-500px);
}
100% {
transform: translateX(0);
}
}
@-webkit-keyframes shift-left-to-right {
0% {
transform: translateX(-500px);
}
100% {
transform: translateX(0);
}
}
@-moz-keyframes shift-left-to-right {
0% {
transform: translateX(-500px);
}
100% {
transform: translateX(0);
}
}
@keyframes rotation-y {
0% {
transform: rotateY(180deg);
}
100% {
transform: rotateY(0deg);
}
}
@-webkit-keyframes rotation-y {
0% {
transform: rotateY(180deg);
}
100% {
transform: rotateY(0deg);
}
}
@-moz-keyframes rotation-y {
0% {
transform: rotateY(180deg);
}
100% {
transform: rotateY(0deg);
}
}
@keyframes rotation-y2 {
0% {
transform: rotateY(0deg);
}
50% {
transform: rotateY(180deg);
}
100% {
transform: rotateY(0deg);
}
}
@-webkit-keyframes rotation-y2 {
0% {
transform: rotateY(0deg);
}
50% {
transform: rotateY(180deg);
}
100% {
transform: rotateY(0deg);
}
}
@-moz-keyframes rotation-y2 {
0% {
transform: rotateY(0deg);
}
50% {
transform: rotateY(180deg);
}
100% {
transform: rotateY(360deg);
}
}
[class^=col-] {
margin: 0 ;
padding: 0 ;
}
body {
margin: 20px;
background-color: #262626;
color: #70a7c2;
font: 20px/1.2 Arial, sans-serif;
letter-spacing: .1px;
text-rendering: optimizeLegibility;
box-sizing: border-box;
overflow-y: scroll;
perspective: 512px;
perspective-origin: 50%;
transform-style: preserve-3d;
backface-visibility: visible;
}
.container {
position: absolute;
left: 0;
right: 0;
top: 20px;
margin: auto;
width: 600px;
height: 300px;
opacity: 0;
transition: .5s;
}
.on .container {
opacity: 1;
}
h1 {
font-size: 24px;
text-shadow: 0 0 3px #70a7c2, 0 0 10px #70a7c2;
}
section {
width: 100%;
margin: 0 0 20px;
text-align: center;
letter-spacing: 10px;
}
section > * {
letter-spacing: .1px;
}
button {
position: relative;
margin: 0 0 0 0;
padding: 10px 20px;
border: 1px solid #70a7c2;
border-radius: 2px;
background-color: rgba(112, 167, 194, 0.15);
transition: .4s;
outline: none;
}
button.big {
padding: 20px;
}
button .glyphicon {
font-size: 10px;
top: -2px;
}
button:hover {
box-shadow: 0 0 10px #70a7c2;
-webkit-animation: rotation-y2 2.4s ease, opacity 2.4s ease;
-moz-animation: rotation-y2 2.4s ease, opacity 2.4s ease;
animation: rotation-y2 2.4s ease, opacity 2.4s ease;
background-color: rgba(112, 167, 194, 0.3);
-webkit-transform: scale(1);
-ms-transform: scale(1);
-o-transform: scale(1);
transform: scale(1);
}
button.active,
button:active {
border: 1px solid #7e70c2;
box-shadow: 0 0 10px #7e70c2;
color: #7e70c2;
background: rgba(126, 112, 194, 0.15);
}
.on button {
-webkit-animation: slide-from-top 1.4s ease, opacity 1.4s ease;
-moz-animation: slide-from-top 1.4s ease, opacity 1.4s ease;
animation: slide-from-top 1.4s ease, opacity 1.4s ease;
}
input[type=search] {
width: 100%;
margin: 0;
padding: 20px;
border-radius: 2px;
border: 1px solid #70a7c2;
box-shadow: 0 0 10px #70a7c2;
color: #70a7c2;
background: #262626;
font-size: 20px;
transition: 4s;
position: relative;
opacity: 0;
}
input[type=search]:focus,
.on input[type=search] {
opacity: 1;
outline: none;
border: 1px solid #7e70c2;
box-shadow: 0 0 10px #7e70c2;
color: #7e70c2;
background: rgba(126, 112, 194, 0.15);
-webkit-animation: shift-left-to-right 1.4s ease;
-o-animation: shift-left-to-right 1.4s ease;
animation: shift-left-to-right 1.4s ease;
}
.list {
width: 100%;
margin: 0 0 20px;
padding: 20px;
border: 1px solid #70a7c2;
border-radius: 2px;
box-shadow: 0 0 10px #70a7c2;
background-color: rgba(112, 167, 194, 0.15);
font-family: monospace;
text-align: center;
position: relative;
-webkit-animation: slide-from-bottom 1.4s ease, opacity 1.4s ease;
-moz-animation: slide-from-bottom 1.4s ease, opacity 1.4s ease;
animation: slide-from-bottom 1.4s ease, opacity 1.4s ease;
}
.list .list-item {
transition: .1s;
}
.hl {
color: #262626;
background-color: #70a7c2;
box-shadow: 0 0 15px 4px #70a7c2;
display: inline-block;
border-radius: 2px;
}
.char-16 {
margin-left: 16px;
transition: 1s;
color: #70c2a7;
text-shadow: 0 0 2px 10px #70c2a7;
}
.on .char-16 {
-webkit-animation: opacity 1s ease-in-out;
-o-animation: opacity 1s ease-in-out;
animation: opacity 1s ease-in-out;
}
.char-15 {
margin-left: 16px;
transition: 1s;
color: #70c28b;
text-shadow: 0 0 2px 10px #70c28b;
}
.on .char-15 {
-webkit-animation: opacity 1s ease-in-out;
-o-animation: opacity 1s ease-in-out;
animation: opacity 1s ease-in-out;
}
.char-14 {
margin-left: 16px;
transition: 1s;
color: #70c270;
text-shadow: 0 0 2px 10px #70c270;
}
.on .char-14 {
-webkit-animation: opacity 1s ease-in-out;
-o-animation: opacity 1s ease-in-out;
animation: opacity 1s ease-in-out;
}
.char-13 {
margin-left: 16px;
transition: 1s;
color: #8bc270;
text-shadow: 0 0 2px 10px #8bc270;
}
.on .char-13 {
-webkit-animation: opacity 1s ease-in-out;
-o-animation: opacity 1s ease-in-out;
animation: opacity 1s ease-in-out;
}
.char-12 {
margin-left: 16px;
transition: 1s;
color: #a7c270;
text-shadow: 0 0 2px 10px #a7c270;
}
.on .char-12 {
-webkit-animation: opacity 1s ease-in-out;
-o-animation: opacity 1s ease-in-out;
animation: opacity 1s ease-in-out;
}
.char-11 {
margin-left: 16px;
transition: 1s;
color: #c2c270;
text-shadow: 0 0 2px 10px #c2c270;
}
.on .char-11 {
-webkit-animation: opacity 1s ease-in-out;
-o-animation: opacity 1s ease-in-out;
animation: opacity 1s ease-in-out;
}
.char-10 {
margin-left: 16px;
transition: 1s;
color: #c2a770;
text-shadow: 0 0 2px 10px #c2a770;
}
.on .char-10 {
-webkit-animation: opacity 1s ease-in-out;
-o-animation: opacity 1s ease-in-out;
animation: opacity 1s ease-in-out;
}
.char-9 {
margin-left: 16px;
transition: 1s;
color: #c28b70;
text-shadow: 0 0 2px 10px #c28b70;
}
.on .char-9 {
-webkit-animation: opacity 1s ease-in-out;
-o-animation: opacity 1s ease-in-out;
animation: opacity 1s ease-in-out;
}
.char-8 {
margin-left: 16px;
transition: 1s;
color: #c27070;
text-shadow: 0 0 2px 10px #c27070;
}
.on .char-8 {
-webkit-animation: opacity 1s ease-in-out;
-o-animation: opacity 1s ease-in-out;
animation: opacity 1s ease-in-out;
}
.char-7 {
margin-left: 16px;
transition: 1s;
color: #c2708b;
text-shadow: 0 0 2px 10px #c2708b;
}
.on .char-7 {
-webkit-animation: opacity 1s ease-in-out;
-o-animation: opacity 1s ease-in-out;
animation: opacity 1s ease-in-out;
}
.char-6 {
margin-left: 16px;
transition: 1s;
color: #c270a7;
text-shadow: 0 0 2px 10px #c270a7;
}
.on .char-6 {
-webkit-animation: opacity 1s ease-in-out;
-o-animation: opacity 1s ease-in-out;
animation: opacity 1s ease-in-out;
}
.char-5 {
margin-left: 16px;
transition: 1s;
color: #c270c2;
text-shadow: 0 0 2px 10px #c270c2;
}
.on .char-5 {
-webkit-animation: opacity 1s ease-in-out;
-o-animation: opacity 1s ease-in-out;
animation: opacity 1s ease-in-out;
}
.char-4 {
margin-left: 16px;
transition: 1s;
color: #a770c2;
text-shadow: 0 0 2px 10px #a770c2;
}
.on .char-4 {
-webkit-animation: opacity 1s ease-in-out;
-o-animation: opacity 1s ease-in-out;
animation: opacity 1s ease-in-out;
}
.char-3 {
margin-left: 16px;
transition: 1s;
color: #8b70c2;
text-shadow: 0 0 2px 10px #8b70c2;
}
.on .char-3 {
-webkit-animation: opacity 1s ease-in-out;
-o-animation: opacity 1s ease-in-out;
animation: opacity 1s ease-in-out;
}
.char-2 {
margin-left: 16px;
transition: 1s;
color: #7070c2;
text-shadow: 0 0 2px 10px #7070c2;
}
.on .char-2 {
-webkit-animation: opacity 1s ease-in-out;
-o-animation: opacity 1s ease-in-out;
animation: opacity 1s ease-in-out;
}
.char-1 {
margin-left: 16px;
transition: 1s;
color: #708bc2;
text-shadow: 0 0 2px 10px #708bc2;
}
.on .char-1 {
-webkit-animation: opacity 1s ease-in-out;
-o-animation: opacity 1s ease-in-out;
animation: opacity 1s ease-in-out;
}
.char-0 {
margin-left: 16px;
transition: 1s;
color: #70a7c2;
text-shadow: 0 0 2px 10px #70a7c2;
}
.on .char-0 {
-webkit-animation: opacity 1s ease-in-out;
-o-animation: opacity 1s ease-in-out;
animation: opacity 1s ease-in-out;
}