angular-timeline
Version:
An Angular.js directive that generates a responsive, data-driven vertical timeline to tell a story, show history or describe a sequence of events.
143 lines (130 loc) • 3.65 kB
CSS
.timeline-hidden {
display: block ;
opacity: 0; }
@media only screen and (min-width: 768px) {
.timeline timeline-event:nth-child(odd) timeline-panel.bounce-in {
animation: cd-bounce-2 0.5s; }
.timeline timeline-event:nth-child(even) timeline-panel.bounce-in {
animation: cd-bounce-2-inverse 0.5s; } }
@media only screen and (max-width: 767px) {
.timeline timeline-event timeline-panel.bounce-in {
animation: cd-bounce-2 0.5s; } }
.timeline timeline-event timeline-badge.bounce-in {
animation: cd-bounce-1 0.5s; }
@-webkit-keyframes cd-bounce-2 {
0% {
opacity: 0;
-webkit-transform: translateX(-100px); }
60% {
opacity: 1;
-webkit-transform: translateX(20px); }
100% {
-webkit-transform: translateX(0); } }
@-moz-keyframes cd-bounce-2 {
0% {
opacity: 0;
-moz-transform: translateX(-100px); }
60% {
opacity: 1;
-moz-transform: translateX(20px); }
100% {
-moz-transform: translateX(0); } }
@keyframes cd-bounce-2 {
0% {
opacity: 0;
-webkit-transform: translateX(-100px);
-moz-transform: translateX(-100px);
-ms-transform: translateX(-100px);
-o-transform: translateX(-100px);
transform: translateX(-100px); }
60% {
opacity: 1;
-webkit-transform: translateX(20px);
-moz-transform: translateX(20px);
-ms-transform: translateX(20px);
-o-transform: translateX(20px);
transform: translateX(20px); }
100% {
-webkit-transform: translateX(0);
-moz-transform: translateX(0);
-ms-transform: translateX(0);
-o-transform: translateX(0);
transform: translateX(0); } }
@-webkit-keyframes cd-bounce-2-inverse {
0% {
opacity: 0;
-webkit-transform: translateX(100px); }
60% {
opacity: 1;
-webkit-transform: translateX(-20px); }
100% {
-webkit-transform: translateX(0); } }
@-moz-keyframes cd-bounce-2-inverse {
0% {
opacity: 0;
-moz-transform: translateX(100px); }
60% {
opacity: 1;
-moz-transform: translateX(-20px); }
100% {
-moz-transform: translateX(0); } }
@keyframes cd-bounce-2-inverse {
0% {
opacity: 0;
-webkit-transform: translateX(100px);
-moz-transform: translateX(100px);
-ms-transform: translateX(100px);
-o-transform: translateX(100px);
transform: translateX(100px); }
60% {
opacity: 1;
-webkit-transform: translateX(-20px);
-moz-transform: translateX(-20px);
-ms-transform: translateX(-20px);
-o-transform: translateX(-20px);
transform: translateX(-20px); }
100% {
-webkit-transform: translateX(0);
-moz-transform: translateX(0);
-ms-transform: translateX(0);
-o-transform: translateX(0);
transform: translateX(0); } }
@-webkit-keyframes cd-bounce-1 {
0% {
opacity: 0;
-webkit-transform: scale(0.5); }
60% {
opacity: 1;
-webkit-transform: scale(1.2); }
100% {
-webkit-transform: scale(1); } }
@-moz-keyframes cd-bounce-1 {
0% {
opacity: 0;
-moz-transform: scale(0.5); }
60% {
opacity: 1;
-moz-transform: scale(1.2); }
100% {
-moz-transform: scale(1); } }
@keyframes cd-bounce-1 {
0% {
opacity: 0;
-webkit-transform: scale(0.5);
-moz-transform: scale(0.5);
-ms-transform: scale(0.5);
-o-transform: scale(0.5);
transform: scale(0.5); }
60% {
opacity: 1;
-webkit-transform: scale(1.2);
-moz-transform: scale(1.2);
-ms-transform: scale(1.2);
-o-transform: scale(1.2);
transform: scale(1.2); }
100% {
-webkit-transform: scale(1);
-moz-transform: scale(1);
-ms-transform: scale(1);
-o-transform: scale(1);
transform: scale(1); } }